feat(Workspace WorkspaceObject): save parent of element

Now we can store parent of the element.
feat(WorkspaceObject): fetch model in constructor

If there are calls to updateModel() before model is fetched, these calls
are queued and model is actually updated after it was fetched.
This way we only fetch model once inside constructor and writing into
it is handled by racer itself.

This change is similar to the change in Client and Workspace.
   Client change hash - d7ddb5e4cbcb08db95b13b2a65fa71c9518f936d
   Workspace change hash - 459693e99a95747fb08ba6230cbb20b5a9f661de
feat(updateModel): update model immediately or after it was fetched

In Client and WorkspaceObject classes, in updateModel() function:
We are now updating model immediately if it was fetched, or we add
listener on modelFetched event that will fire only once and update model
right after model is fetched.

Here we excplicitly make model update only after fetch happened.
feat(racer): pass only store and recreate model for each class

Previously we created one store and one model in index.js file and
passed both of these objects between different classes. This way we had
only one model always. We also had problems when we were trying to
subscribe to the same model few times.
Now we create one store in index.js file and pass it to different
classes and we create new model from that store object for each
particular class. This way classes are more independent and have more
control over their own instance of Model.

We also do not sent mainPath anymore as it exists in util module and we
can get it from there.
feat(index): set to empty instead of deleting while cleaning model

Because of the move to new way with few models recreated for each class
instead of one model that was shared between everyone, we faced
issue #1. Every time when we delete collections on exit, we need to
recreate them on new start, and because of that somewhere inside sharejs
there are two events (that create doc) happen. It seems that sharejs
cannot resolve 2 create events, and it crashes with error 'Document
created remotely'. So to eliminate creating new collections each time,
we are just emptying them on exit. We still have the problem when we
start application for the very first time and database is absolutely
empty.
fix(index): fetch model to be able to update it later

If we dont fetch model, when we clean it, it does not actually update
model and it is not saved into mongo db.
feat(model): notify about subscribe instead of fetch

We remove fetch call completely and emit modelFetched even when model
is subscribed.
Also we get scoped model only after model is subscribed.
feat(model): updateModel after creating fields, not in the end

We were updating model in the end of constructor and in some cases it
turned out that model was updated after we merged some values. This
could create issues.
feat(browser): get rid of racer field

In racer field we were saving store, model and path fields.
Now we save store and model directly in wams and we get path from util.
feat(browser): emit modelFetched after subscribe

Before we emitted modelFetched event after model was ready.
Now we emit after model was actually subscribed.