Moved the graphite logic to new graphs.js
The settings code now does change notification itself. Over time,
it makes sense to just having settings code do this for everything
and not have this change listener logic. This lets us:
* Maybe the settings can only return based on final handler result
* All dependant modules otherwise have to "init"ed to listen on startup
* Easier to test those handlers without having to actually change the
setting (since they will now be in "exports" naturally)
Also, maybe someday with this abstraction we can allow apps to have their
own isolated databases etc