Add support for creating docsets

Instructions from http://kapeli.com/docsets#dashDocset.
The javascript is currently pretty janky inside dash.
We'll probably want to keep everything expanded when inside a docset, as well as hiding some of the chrome (especially the sidebar). @orta, any advice on doing that?

@kapeli, is there any chance you could look this over and let me know if I've done things correctly?
We should have a single global collection of `SourceDeclarationType`s containing the SourceKit, jazzy and Dash equivalents.