Optimized Print::print(String&) (part 2)
Add Print::write(const char *, size_t)

The new function just calls Print::write(const uint8_t *, size_t), but
this allows writing out a buffer of chars (without having to learn about
casts).
Add uint8_t* versions of methods in Stream

The new functions just call their char* equivalents, but this allows
reading bytes into a buffer of uint8_t as well as chars.
Remove unneeded casts in Print::write(const String&)

Now that Print::write(const char*) is also available, these casts are no
longer needed.
Use reinterpret_cast to cast __FlashStringHelper to const char*
sam: Optimized delayMicroseconds() (Rob Tillaart)

See #1121
Removed unused stuff from WiFi library.
Removed unused "socket.h" interface from WiFi library.

(that was probably an heritage from Ethernet lib)
Moved vanilla parts of WiFi library into common source folder.
WiFi librari: SPI delay is computed based on F_CPU constant
WiFi library is now vanilla
Merge pull request #1762 from matthijskooijman/ide-1.5.x-write-char

Support both char* and uint8* in Stream and Print
Use PGM_P instead of prog_char

On later versions of avr-libc, prog_char is deprecated. In 0acebeeff48
the one occurence of prog_char was replaced by "char PROGMEM", which is
not entirely correct (PROGMEM is supposed to be an attribute on a
variable, not on a type, even though this is how things work in older
libc versions). However, in 1130fede3a2 a few new occurences of
prog_char are introduced, which break compilation on newer libc versions
again.

This commit changes all these pointer types to use the PGM_P macro from
<avr/pgmspace.h>. This macro is just "const char *" in newer libc
versions and "const prog_char *" in older versions, so it should always
work.

References #795
Merge branch 'cast' of github.com:Lauszus/Arduino into Lauszus-cast

Conflicts:
	hardware/arduino/avr/cores/arduino/Print.cpp
Fixed value of NUM_DIGITAL_PINS for Arduino Due
sam: moved "variant" methods into proper place
sam: Added digitalPinHasPWM(..) method

Fixes #1342
Improved portability of String class (maniacbug)
Ethernet library refactoring

- removed arch folder
- merged socket.c and w5100.c for SAM and AVR, this is preparatory
  to make library vanilla