feat(games -QuickGrab)

-New Games Branch
-First Game Build on the 4Square View Model
-4 Players, coins spawn in the buffer zones, grab them as fast as
possible
fix(minor): Initialization

-Fixed so that new users get all old information on initialization
Merge pull request #1 from jlr297/client_feat_games

Client feat games
Merge pull request #2 from jlr297/examples_feat_drawing

fix(minor): Initialization
feat(major): start shared workspace example
feat(workspaceManager): add simple workspace manager

This workspace manages connection of new clients, disconnection of
existing client and screen resize of existing clients.
When some clients are connected or disconnected, other clients are
notified and moved on the large workspace area accordingly.
fix(ball): part of ball is hiding when moving to side of page

Previously when ball was moved to the side of page, scrollbar was
created, so the whole ball could be seen.
After fix, part of ball is hiding, so it is behaving like that part is
on different screen.
feat(client): add helper methods to manage elements

Methods to manage elements on page - e.g. move element, fix touch point,
lift Z index, lock, unlock.
fix(adjust_workspace): save adjusted workspace

Previously it was only displaying change but did not save it into screen
object
feat(appendElement): start hammer on appended element

Also provide methods onTouch, onDrag, onRelease which are similar to
mirror mode of circles example
feat(remote_events): provide methods for remote events

Proved methods onRemoteTouch, onRemoteDrag, onRemoteRelease which are
similar to those of mirror mode of circles example.
feat(workspaceManager): provide getScreen method

getScreen method returns screen of specified by uuid client
feat(workspaceManager): provide under method

Method under returns list of workspaces that are under specified x,y
coordinates
feat(workspaceManager): provide allExcept method

Method returns list of all workspaces that are not in list, so returned
list is complementary to given list.
feat(app): add handler for 'drag' events on clients

Handler gets element that is being dragged, calculates all corners of
that element, builds list of all workspaces that have at least one
corner on them, gets list of all workspaces that do not have corners on
them, and notifies both lists that they need either to start showing
element or to stop showing element using 'enable_remote' and
'disable_remote' events on socket.
feat(sharedWorkspace): add 'disable_remote' handler

Handler gets elements that it needs to disable, and removes them from
page.
feat(sharedWorkspace): add 'enable_remote' handler

Handler gets elements that it need to show, if they do not exist, it
creates them, and then calls one of methods for remote events, depending
on the type of event that was sent.
chore(sharedWorkspace): remove unnecessary comment
refactor(workspace): rename object to follow convention

Renaming to start with upper-case, as it is supposed for classes.
docs(workspace): add docs to methods of Workspace class