Use custom SoftSerial

Rebased GSM Serial to use custom SoftSerial
Increase Rx Buffer size

Fixes SMS truncation
Improved call handling

Wait for ring confirmation before returning
Longer wait for a hangup
Updated Arduino Keywords
Clear calls before placing a new call
Longer wait for sending SMS

CMGS is sent before OK. Waiting for this reduces timeouts and other
errors.
Removed Unnecessary Functions

Combined SendSMS(), StartSMS() and EndSMS(). Removed related variables
and accessor functions.
Added a ReceiveSMS Callback Function

The function onReceiveSMS will be executed when a SMS message is
received. Message checking is done in onRead() to ensure message is not
lost.
Added Delay After Hangup

A delay allows the module to return to 'normal'. Calling any other
methods (especially SendSMS) can result in a CMS 313 Error.
Merge pull request #3 from alobo/fix-smshandling

Fix smshandling