Implemented WebSocket two-way messaging

Created development and build environment (webpack, gulp).
Created wrappers for browser-side and server-side WebSocket
implementations.
Added basic app-level protocol (simple handshake and resource usage).
Protocol `cleanup` to `teardown`, added `setup`
Added dashboard UI stub

* WIP dashboard layout.
* Added Epoch charting library.
* Changed protocol to start sending immediately and send all data in a
single 'data' message.
Changed `npm run dev` script
Fixed channel close handling

Removed `disconnecting` event (inconsistent). Renamed `transport-error`
event to `error`.
Added prefixer and flexbox LESS mixins
Implemented dashboard layout and real-time charts

There are issues with Epoch charts auto-sizing for now. Maybe will
replace Epoch with Rickshaw.
Replaced Epoch charts with Rickshaw charts

Made the charts automatically fit the container.
Added CPU load emulation on the server-side.
Fixed nested layout flex-direction.
Abstracted away layout from data

Separated chart data temporary storage and actual data storage.
Fixed layout size recalc after render.
Fixed chart data stubbing when there is not enough data for display.
Load meta and data from cpp backend

Load layout from index.js (will move to cpp backend later).
Refactored dashboard layout and data update.
Refactored the internals to correctly render ticks

Improved the "TTL", renamed to "timeInterval" (good for real-time data
that should not be limited to specific timestamps).
Added automatic calculation of the tick frequency based on the given
number of ticks and the time interval).
Refactored the updates and copying the data into the charts for
rendering.
Refactored the data to specify time in milliseconds (integer).
Documentation pending.
Removed dependencies on `usage` and `os-utils`

They are platform-dependent and require compilation of some binaries.
Cleaned up the dependencies

Reordered `package.json` (only server-side as `dependencies`, other
modules required for build only thus `devDependencies`).
Added `start` npm task for starting in production-mode (without
`webpack-dev-server`).
Added `moment` package to `vendor` chunk.
Added a comment on UglifyJS (did not add uglify itself because
currently it breaks the code with its optimizations).
Added TODO about disconnect handling

Currently if the browser-side socket disconnects, we get a gap in the
data flow which, when the flow recovers, does not look pretty in the
chart.
Added `clean` npm task to remove the built assets

Run `npm run clean && npm run build` for a clean build.
Refactored the file structure, fixed reconnect bug
Fixed indentation
Refactored frontend into separate modules

* Factored out data stores, layout and visualizers.
* Updated `rickshaw` to the latest `1.5.0` version (reference github
because they didn't publish to `npm`). Don't be confused with the
version reported by `npm list`, they didn't update `package.json`
either.
* Added `laxbreak` to jshint config to be able to put the ternary
condition `?` and `:` on the next line.
Fixed gitignore ('public' -> 'build')