WIP: Working towards #210 (Mass Text Broadcasting)

Extracted SmsBroadcaster for mass-sending text messages.
Additionally, we built a scope on PhoneNumber to determine if it is
 #textable.

Fix ->

Updated the Student factory to use randomly generated CCSD IDs instead
of a single static ID.
Implemented SMS Broadcast functionality.

Added haml-rails gem so that we can start moving views to a more legible format.

This commit introduces the ability to send a mass message to a teacher-defined list of students. These students are separated by class, but ONLY appear if they have a guardian with a 'textable' phone number. The SMS broadcast is sent through the SmsController with a route of `/sms/broadcast`.

**Drawback**: The Twilio service only allows text messages to be sent at a rate of 1 text per number per second. Heroku has a default timeout of 60 seconds _(at this time we can only send up to 50 messages in a single request)_.

Proposed Solution: We could, in the future, add background task processing to send however many messages we need. However, introducing this requires Heroku workers which can cost in the realm of $40-50/month/worker.

Also, added a few helper methods on Student and Course to make data retrieval and formatting easier:

* Student#full_name

* Course#subject_name
Solved the N+1 Query problem for `SmsBroadcaster#broadcast`

Dropped number of queries per student from two to one.
Merge pull request #253 from rwarbelow/broadcast-sms

Broadcast SMS