Fix for issue 439. UDP API changed to derive from Stream. The old sendPacket and readPacket calls have been removed, and replaced with Stream-derived alternatives which provide more commonality with other communications classes and to allow both buffered and full-packet-at-a-time uses. Also includes the introduction of an IPAddress class to make passing them around easier (and require fewer pointers to be exposed)
Merge remote branch 'upstream/master' into dhcp-dns
Added a method to read data into a char buffer so that character-based (rather than byte-based) operations don't require a cast.  As requested by Tom Igoe.  Part of the fix to issue 439.
Fix for issue 62, adding DHCP support.  New begin() method added to EthernetClass which takes just a MAC address and gets the rest of its configuration information via DHCP.  Examples updated to use the IPAddress class and some have been changed to get their config via DHCP.
Proposed fix for issue 243, adding DNS to the Ethernet library.  Uses a slightly modified version of the agreed API as the host/port parameters have been moved from the Client constructor to the Client::connect methods.  This means it's possible for errors to be returned if the DNS lookup fails and also reduces the RAM footprint of the Client class as it no longer needs to store the host/port for later use in Client::connect.
Added new method to UDP to take a hostname rather than an IP address.  Part of issue 243
Fixed bug in parsePacket where it could block indefinitely if called when no packets were available to be read.
Optimized digitalWrite(), etc. from Alvaro Lopez.
Changes to optimized digitalWrte(), etc.

Factoring out the implementation of digitalWrite(), digitalRead(), and pinMode() into macros that can either be inlined (for constant pin numbers) or executed within a function (non-constant pins).  Removing testing for timers on pins in digitalWrite(), digitalRead(), and pinMode().  Moving pin to port macros from pins_arduino.h to wiring.h.
Adding noAnalogWrite() function to disable PWM.

Also, removing the inline version of digitalPinToTimer() (since we're not optimizing the functions that use it anyway).  The noAnalogWrite() function is in wiring_analog.c, deriving from the previous turnOffPWM() which has moved from wiring_digital.c.

http://code.google.com/p/arduino/issues/detail?id=476
A modification of [New]SoftSerial to meet certain requests David
Mellis asked about in preparation for integration into core:
1. Remove notion of library version
2. Remove little used "enable_timer0" method.
3. Rename is_listening to isListening
i

:insert

:
:set showmode
Revert "Adding noAnalogWrite() function to disable PWM."

This reverts commit 38d4a34fec6925b29a732d13e200f54ee4b42025.
Revert "Changes to optimized digitalWrte(), etc."

This reverts commit aa1f1cbda9d6bb52785f98b40746920853d6579b.
Merge branch 'new-extension' of github.com:arduino/Arduino into new-extension
Merge branch 'master' into new-extension
Modifying examples to use Serial.write() instead of Serial.print(BYTE).
Removing BYTE keyword (use Serial.write() instead).
Renamed WProgram.h to Arduino.h.
Moving wiring.h contents into Arduino.h.
Re-arranging header files and small fixes to optimized core functions.