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.
I think we already got rid of that on the grounds that it wasn't very intuitive, and just made it default to adding code cells each time. In master at present, `default_cell_type` is only set once on notebook instantiation.