5087 local storage message

Feedback welcome! Message can be saved and retrieved from localStorage.
I thought I'd chime in as I'm helping @dan-mi-sun and @op48 and had a hand in the approach we're looking at.

I see the benefit in using the `sync` method and using more standard naming conventions. I don't have a lot of experience in writing JavaScript plugins and I'm sure there is room for improvement on the API / scoping. I think that our rationale was that in the case of saving a draft, we don't care about `fetch`, since we presume that would bring in state from the server, and if we wait until we call `save`, that's too late. We could of course rename our `saveDraft` method to `save`, which would remedy the last problem.

Even then, there is still the following conundrum. Suppose we have a backbone model (Message, Comment, Post etc), which we would like to be draftable, up until the point that the user actually saves it. Our thinking was that overriding `sync` would mean that we would either (a) have to switch between 'draft mode' and 'ajax mode' in the model, or (b) use another model such as Draft, but then transfer the state from a Draft back to the main model. 

My understanding of the approach that you have set it presents two considerations. In the former case, I see an unnecessary step in switching between the two models; in the latter case, I see the main issue being that we'd be binding the backbone view events to this draft, which would later need to transfer state to some other model in order to be saved back up to Rails.

I was wondering whether you could elaborate on this and walk us through your approach so that we can see whether we are all on the same page.