5087 local storage message

Feedback welcome! Message can be saved and retrieved from localStorage.
Once more, the idea is not to replace Backbone.sync but to provide a compatible API that uses LocalStorage as the backend. A model could be switched to that by changing the `sync` attribute of it from the default of `sync: Backbone.sync` to `sync: app.LocalStorage.sync` or whatever the name would be. This means a model would either be persisted to the backend via AJAX or to LocalStorage, not both. So the Draft model would be a candidate that should be persisted to LocalStorage while the Message model would still be persisted to the Backend via AJAX, much like you have it now. The Draft model can then be periodically saved, by calling .save on it, if you wish on each keypress like you do now. The benefits of this approach are that we can switch storage backends for all models simply by defining the `sync` attribute, for example if a better alternative to LocalStorage comes along, we could switch to it by writing another adapter for it and then changing a single line in the model.