runtime: Separate out handling of graph commands
runtime: Separate out handling of network commands
tests: Pass a graph identifier

The UI does this, in order to support multiple graphs.
runtime: Move most of component library code into separate file
runtime: Refactor to support multiple graphs

Missing testcases for actually using multiple graphs
References #8
tests: Skip some impossible checks when in debug mode
runtime: Fix invalid freeing of old graph/networks

Happened when moving between to graph and back in Flowhub
References #8
tests: Add two failing tests
server: Fix failure on https:// protocol and bogus characters in extensions
tests: Fix timeout on, and improve error reporting
server: Fix failure on .png which GEGL could not sniff type of

Regression in extension logic introduced in f1b10ac,
but file is interesting as a test case regardless, as
normally GEGL should have understood it was a PNG from the content.
doc: Update README with design/architecture and how to add graphs
doc: README formatting fixes
server: Prepare for supporting different runtimes
tests: Improve error message on image comparison fail
Add initial support for NoFlo runtime w/noflo-canvas

Adds a trivial demo to the regression checks. Currently requires some hacks:
* "npm install noflo-core noflo-canvas" manually
* CreateCanvas with hardcoded dimensions in the graph
* "input" url needs to be specified, even if not used (see tests for example)
Add noflo-core and noflo-canvas to dependencies

Required by recently added noflo-canvas graph supporT
Travis: Install libgif dependency
server: Make 'input' attribute optional

Avoids having to download a dummy file for purely generative graphics
server: Automatically create canvas, pass height/width for noflo-canvas graphs

All graphs for noflo-canvas now accept height+width parameters on HTTP,
and must expose one "canvas" inport to accept the canvas instance they
should draw onto.