WIP: Remove js user_config module

Use the frontend config system more in its place. The `services/config` module has grown a ConfigWithDefaults class which matches up config loaded from the server with defaults in the JS code.

There's some ugliness still to sort out with the cell classes: they currently rely on merging cm_config dictionaries based on their inheritance, and I'm not sure how to make the config system interact with that. So, for now, CodeCell, RawCell and MarkdownCell (the three leaf classes we actually use) take a config kwarg that is a ConfigSection object, but Cell and TextCell (the parent classes) take a config kwarg that is a dictionary containing a `cm_config` key. I'd like to clean this up, once I've worked out how.
No, that is what the test was testing.

Maybe @jdfreder or @ellisonbg can shed some light on it - I'm sure we have got rid of the behaviour where inserting a cell matches the type of the currently selected cell, but we still appear to have tests for that (in `dualmode_cellinsert.js`), and they seem to have been passing on master until this branch, somehow.