Ui localstorage

Hi,

This PR is about the issue #453 

I'm doing this PR to get some comment on the work already done before continuing.

# Todo
- [x] Settings API using localStorage
- [x] Keeping as property the result of get(settings)
- [x] Creating a init method in the API with a callback
- [x] Saving state of the element of the menu (Sidebar disabled/activated, node status)
- [x] Added possibility to set element of the menu as activated by default (like the Sidebar)
- [ ] Saving the position of editor windows
- [ ] Saving size of editor windows


does `hasLocalStorage` need exposing? I can see how it might be useful, but I try to keep the module api's minimal and only add things when they are really needed.