Added Serial (both Hardware and USB) receive interrupt callback support

You can now attach an interrupt callback to the serial system which gets
called whenever a character arrives.  Example:

    void setup() {
        Serial.begin(9600);
        Serial.attachInterrupt(receive);
    }

    void loop() {
    }

    void receive(int ch) {
        Serial.write(ch);
    }

detachInterrupt() is also there for removing it.  Attaching an interrupt
disables the normal receive ring buffer.