Removing model.js and pluginapi.js

__This does not have to make it for the release.__

As discussed at the beginning of the refactoring, I made `model.js` and `pluginapi.js` go away.

From now on we have two types of models:
- Services (websocket and server model)
- Widget States

Ideally, widgets should depend on services, but plugins. I say ideally because the `navigation.js` widget actually does depend on `build.js`.

## model.js
Each widget is responsible for its own binding. So we can build smaller state objects to pass to the HTML and avoid very big and hard to maintain huge-multi-purpose file like `model.js`.

## pluginapi
I also removed pluginapi as it was mostly became a proxy object to host other dependencies. Most of the time, this was called to get the `Widget` class or 'Class' itself, so I made the files depend on the right source file instead.

## settings
Settings are now not in a shared global state. We have to get a reference to an observable, and explicitly pass it to the view.