GSM shield examples and minor optimisations

Have added a few new examples which use the Arduino GSM shield (or the Eseye Hera200 board, which is effectively a Leonardo + GSM shield).

Unfortunately because the Leonardo has a 4KB bootloader (so less space available) and the GSM library is pretty big, only the GSMDatastreamUpload sketch will fit into a Leonardo (all should fit into an Uno).  So I've trimmed down the library a bit, and will be submitting a patch for the GSM library to the core Arduino project once I've worked a "proper" one out.

At present I've got a workaround which frees up >2KB in the GSM library, but stops voice calls working.  If you comment out these two lines in your GSM library, it'll free up enough space for all of the examples to work on a Leonardo:

In Arduino/libraries/GSM/GSM3MobileServerService.cpp:
GSM3ShieldV1ServerProvider theShieldV1ServerProvider;

And in Arduino/libraries/GSM/GSM3VoiceCallService.cpp:
GSM3ShieldV1VoiceProvider theShieldV1VoiceProvider;