Sorry I haven't replied in some time, just been busy with my first week of uni and getting back into my job. Also been getting new stuff of late so that's part of the reason, but anyway, let's take a look.

I did go through your code the other day and with minimal work it would work fine with the Arduino, no issues. There are a few things that need working such as doing the maths for the speedo (we'll go into that) and also how your blinking is done.
In the pseudo code, there isn't actually anything getting the time from the microcontroller to be able to process the blinking. There is a function defined in the Arduino library called millis() which can help with this, it returns a unsigned long value which represents the number of milli seconds since the microcontroller was turned on. In your main code, look at doing something like this:
if ((millis() - blinkertime) > 500) {
  byte buttonstate = (digitalRead(buttonLeft) | (digitalRead(buttonRight) << 1) );
  blinkertime = millis();
This way in your blinker function, you don't have to worry about timing, only what LEDs are flashing, and this could be done just by toggling the pin states. (Or remember what you wrote to the pins last)

I don't use google talk much but I can, you can PM me your talk address to me whenever you feel like you want to.