Disable Auto Power Saving
Disable Auto Power Saving when resetting the modem. This can cause several bugs with serial communication, as outlined on (https://www.sparkfun.com/products/9607)
Added int GetGSMStatus()

This function returns the status of the GSM Module
Added Call and Hangup functions

Call(char * cellnumber) calls the specified phone number. Hangup()
terminates the call
Added the stats codes as constants
Stop calling ReadLine() in member functions

Removed ReadLine() from the individual methods. The methods now parse
the cache instead of updating it multiple times. This prevents messages
from becoming lost.

SerialGSM.ReadLine() must now be called once per loop.
Added ReceiveCall()
Fixed Extra Character in Phone Number

North American phone numbers require 12 digits (+X1234567890)
Check SMS Length

Ensures SMS Messages are less than 140 characters. This is the character
limit when sending messages in TEXT Mode (AT+CMGF=1)
Added Error Flag

If an error has been detected, ErrorOccured() will return true.
Wait for modem response after issuing command

All methods which issue commands to the modem call WaitResp(char *
response, int timeout). This function waits until the modem returns the
response specified or the specified timeout period has elapsed.
Cleanup

Fixed indenting and variable names
Prevent truncation of incoming SMS messages

If a SMS message is incoming, WaitResp will wait until it has been fully
received before returning. This prevents loss of data.
Check verbose flag before printing
Handle millis() rollover

Cast all millis() subtractions to unsigned long to account for any
rollover.
Merge pull request #1 from alobo/master

Pull merge to alobo master