generalize new_cell and have execute-line callout to get language

... but the asset languages are wrong ...
generalize language support

- cmd-enter creates a cell of the current language, no matter where you
are or what the language is - fixes #588
- dropped separate new_**_cell methods in shell_tab, just new_cell now
- assets and cells use buffer_model.language
- assets and cells use same language tags from github gist
- asset language changing should work in principle but there's no UI
- promisify append_asset (but not the rest of notebook controller, see #591)
- language detection for assets from github gist
- part names detected uniformly
A couple of important commits I forgot to push...

Merge commit 'bd0146ed479a917ad52a3bd3b38959a01764cdbe' into develop