Merge pull request #190 from DoSomething/dev

merge for deploy Science Sleuth gameplay config
Merge pull request #192 from DoSomething/dev

merge for deploy DonorsChoose.org API integration
Merge pull request #194 from DoSomething/dev

merge for deploy @13a0d31 - OIP config fixes for Science Sleuth
add invalid state and zip oips to config
one user can now donate multiple times to different projects
add valid last name, salutation for valid donation transactions
API calls, mongo error handling, opt in user to start donation flow upon errors
Add Musical Mixup specific opt-in/out
Merge pull request #196 from ArielSD/master

Add Musical Mixup specific opt-in/out
Add Verizon Domestic Violence 2014 specific opt-in/out
Merge pull request #198 from ArielSD/dev

Add Verizon Domestic Violence 2014 specific opt-in/out
replace mobilecommons.optin with sendSMS, refactor to avoid async database problems
Merge pull request #195 from tongxiang/3M-endgame-flow-fix

3 m endgame flow fix
Changing all SMS opt-in calls to use the sendSMS() function in DonorsChooseDonationController
Catching exceptions from JSON.parse in findProject()
+ verifying donorDocument exists before trying to access its properties in retrieveEmail()
Error fix when no customFields are passed into mobilecommons.profile_update
DonorsChoose test API values used when NODE_ENV is set to 'test'
More error handling in DonorsChooseDonationController.submitDonation()
Merge pull request #199 from jonuy/3m-error-handling

More error handling and cleanup for DonorsChoose donation code