Fixed missing NOT_AN_INTERRUPT constant in digitalPinToInterrupt()

Fixes #2379
Revert "Match return value to type in available()"

This reverts commit f40e4713542fa862d5b99b256a642e001a796988.
Added an hint for the buffer sizes.

See #2057
Fixes #2367
Updated revision log
Merge branch 'master' into ide-1.5.x

Conflicts:
	hardware/arduino/cores/arduino/HardwareSerial.cpp
	hardware/arduino/cores/robot/Arduino.h
[sam] Added -MMD flag to tell compiler to produce dependencies files

Now a full rebuild of the sketch is triggered only if needed.
build.xml: restored -z flag in tar creation
[avr] Improved SPI speed on 16bit transfer.

From https://github.com/arduino/Arduino/pull/2376#issuecomment-59671152

Quoting Andrew Kroll:

   [..this commit..] introduces a small delay that can prevent the wait
   loop form iterating when running at the maximum speed. This gives
   you a little more speed, even if it seems counter-intuitive. At
   lower speeds, it is unnoticed. Watch the output on an oscilloscope
   when running full SPI speed, and you should see closer back-to-back
   writes.

Quoting Paul Stoffregen:

   I did quite a bit of experimenting with the NOP addition. The one
   that's in my copy gives about a 10% speedup on AVR.
[avr] Use a bitfield structure to save SPI state (Andrew Kroll)
[avr] Small comments and headers fixes in SPI
[avr] Made SPI.begin() and SPI.end() synchronized (Andrew Kroll)
[avr] Fix to atomic-access on SPI Transactions (Andrew Kroll)
[avr] Added SPI.notUsingInterrupt() (Andrew Kroll)
[avr] SPI: removed redundant include