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.
Save Last Error Code

Replaced ErrorOccured() with GetErrorCode()
Function Success Flag

Most functions will now return a boolean value indicating if the
operation was successful.
Reset Clears Variables

All flags and buffers are cleared in the reset() function
Reset Buffer After WaitResp()

The inMessage buffer is reset after a successful call to WaitResp().
This prevents old data from being reprocessed.
Add Delays for Stability

Add delays to allow module to return to normal state. Helps prevent CMS
Error 313
Merge pull request #1 from alobo/develop

Merge Develop into Master