* adds `?hash` to JS and CSS bundle URLs against caching in production
* uses `html-webpack-plugin` to generate html dynamically
* html based on template in `app/html/index.html`
* per-app html files no longer needed
* `build/` dir is now completely deleteable, and fully gitignored
* top-level `make` now requires `client/app` to pick up on html and
style changes
* cleaned up `server.js` code for production bundle testing
* added readme entry about testing production bundles
Add debug.html to show toolbar
Perfjankie test runner
Playing w/ the pure mixin for perf. improvements
* Works well! Smoother zooming/panning when things have settled.
* Extract node movement to node-container, make nodes pure
Extracted node chart elements into own components
Keep control objects immutable while in components
Keep layout state objects alive
Made other components pure, removed mixin from stateless components
Remove font size adjustment from scaling
Fix zoomscale
Move node transform to node
* makes more sense there because the coords are rounded in the container
dynamic coords precision based on topology size
Make edge points immutable
Remove nodes maximum for layout engine
Dont send all canvas state down to next component
moving layout handling back to nodes-chart.js
Omit some props for edges/nodes, dont animate edges on low precision
Moved AppStore access out of lower components
* get rid of gulp
* use webpack-dev-server to serve app.js
* express serves static files
* 2 webpack configs: local and production
* for development with backend, websocket URL is injected
* remove unneeded static files
* using browsersync instead of livereload
* `gulp serve` works as before
* `gulp sync` starts browserSync and serves UI on port 3000
* everything is built in `build/`
* build release with `gulp build --release`