More error handling and cleanup for DonorsChoose donation code

#### What's this PR do?
* Instead of having to comment/uncomment code, to use DonorsChoose QA API values, you can just start the app setting `NODE_ENV` to `test`. ie - `$ NODE_ENV=test node server.js`
* Some functions would return boolean values when no return value is actually expected. Removing the returned values to remove any confusion or expectation that the functions should be returning some value.
* Replaced `mobilecommons.optin` calls to `sendSMS`.
* Added some handling for exceptions that could be thrown by JSON.parse and cases where we might access properties of an undefined var. These *shouldn't* happen, but in case they do, at least the app won't crash.

#### How should this be manually tested?
* Launch app in test env: `$ NODE_ENV=test node server.js`
* Run through the donation flow.