Add copyright and license to GSClient.cpp and GSClient.h
Add support for UDP clients

This makes GSClient an abstract class and adds GSTcpClient and
GSUdpClient subclasses.
Remove const workaround for IPAddress

https://github.com/arduino/Arduino/pull/1798 was merged, so this is no
longer needed. This means that this code will only work with a recent
nightly build, the Arduino 1.5.6 release does not have this fix yet.
Swap if and case

Previously, there was an if containing a case. Now there is a case,
with the if inside each branch. This shouldn't change any behaviour, but
makes it easier to use a different if condition in some case branches
next.
Let getFrameHeader return the current RXFrame object

getFrameHeader is also made public. This prepares for using the frame
header contents for UDP support later.

Because RXFrame is also given an operator bool(), thet getFrameHeader()
function can still be used as before to just check if there is a frame
header available.
Fix comment
Handle incoming UDP packets
Allow GSCore:writeData to write UDP server packets

This adds a version that accepts an IP address and a port and writes
<ESC>Y packets instead of <ESC>Z.
Add GSModule::listenUdp

This method starts an UDP server, listening on a single port. Low level
code for reading and writing data through this server is already
present, higher level code will be added next.
Let GSModule::connectTcp and connectUdp return cid_t

They previously returned int, but there was no good reason for that.
Add GSUdpServer class

This class provides a bit higher level access to the UDP server feature.
It extends from the Arduino UDP class, providing the same API as the
default Ethernet library.
Fix GSCore::parseIpAddress

Before, it would not initialize to passed IPAddress object to zeroes,
effectively adding the IP address being parsed to whatever values
happened to be in there.

A symptom of this would be that only the first UDP packet would be
succesfully received, but any subsequent ones would fail.
In GSUdpServer::parsePacket, drop any previous unread bytes
In GSUdpServer::endPacket, free the buffer
Add GSUdpServer example
just debugging to get current IP to test
Intitialize frame length in GSUdpServer constructor

When a GSUdpServer object is intialized on the stack (like in the
GSUdpServer example), its variables will not be zero-initialized. Having
a random value for the packet length will cause all kinds of weirdness.

Initializing just the packet length to 0 should be enough, all other
values are unused when length is 0.
Further improve GSUdpServer initialization

There are more fields that need initialization. Instead of setting them
all in the constructor, we just give most fields initializers in the
declaration instead.
actually return the port heh
initialize len to zero :)