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.
Ah, wait, I see it - we changed the functionality by default, but left the API there so that if you set `IPython.notebook.default_cell_type = 'selected'` you'll get the old behaviour, and the test is checking that. I guess I need to update the test to use the config system.