Nbconvert to script for any kernel language

This adds both `nbconvert --to script` and a 'Download as' menu option that updates to match the relevant kernel.

* The file extension is taken from kernel info, defaulting to `.txt` so as to degrade gracefully where kernels haven't added this feature.
* For now, it *just* gives the contents of the code cells, with no extra metadata in comments. This keeps things simple, because we don't need to deal with different comment styles, but we can add that later if we feel it's necessary.
* The kernel info can also specify `nbconvert_exporter` to use from the menu instead of the 'script' exporter, and our own kernel specifies the 'python' exporter, which adds e.g. the `# coding: utf-8` header.

closes #6944
We discussed this in person, and decided against it:

- If we make one optional, we'd prefer it to be extension, because mimetype is clearer and more specific.
- `mimetypes.guess_extension()` uses platform dependent data, so it would be unfortunately easy for a developer to see that it was getting the right extension on her own system, and decide not to specify it, but it may behave incorrectly on users' systems.
- Also, at least on Linux, the MIME database is designed to go from extension to mimetype; there may be multiple extensions mapped to the same type, and it doesn't always pick the one that you'd expect (e.g. `text/plain -> .c` and `image/jpeg -> .jpe`.