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 combine `DASH_TYPES` and `KIND_NAMES`:

```ruby
TYPES = [
  {
    :sourcekit => 'source.lang.swift.decl.function.method.class',
    :jazzy => 'Class Method',
    :dash => 'Method',
  },
  {
    :sourcekit => 'source.lang.swift.decl.var.class',
    :jazzy => 'Class Variable',
    :dash => 'Variable',
  },
  {
    :sourcekit => 'source.lang.swift.decl.class',
    :jazzy => 'Class',
    :dash => 'Class',
  },
  {
    :sourcekit => 'source.lang.swift.decl.function.constructor',
    :jazzy => 'Constructor',
    :dash => 'Constructor',
  },
  {
    :sourcekit => 'source.lang.swift.decl.function.destructor',
    :jazzy => 'Destructor',
    :dash => 'Method',
  },
  {
    :sourcekit => 'source.lang.swift.decl.var.global',
    :jazzy => 'Global Variable',
    :dash => 'Global',
  },
  {
    :sourcekit => 'source.lang.swift.decl.enumelement',
    :jazzy => 'Enum Element',
    :dash => 'Element',
  },
  {
    :sourcekit => 'source.lang.swift.decl.enum',
    :jazzy => 'Enum',
    :dash => 'Enum',
  },
  {
    :sourcekit => 'source.lang.swift.decl.extension',
    :jazzy => 'Extension',
    :dash => 'Extension',
  },
  {
    :sourcekit => 'source.lang.swift.decl.function.free',
    :jazzy => 'Function',
    :dash => 'Function',
  },
  {
    :sourcekit => 'source.lang.swift.decl.function.method.instance',
    :jazzy => 'Instance Method',
    :dash => 'Method',
  },
  {
    :sourcekit => 'source.lang.swift.decl.var.instance',
    :jazzy => 'Instance Variable',
    :dash => 'Property',
  },
  {
    :sourcekit => 'source.lang.swift.decl.var.local',
    :jazzy => 'Local Variable',
    :dash => 'Variable',
  },
  {
    :sourcekit => 'source.lang.swift.decl.var.parameter',
    :jazzy => 'Parameter',
    :dash => 'Parameter',
  },
  {
    :sourcekit => 'source.lang.swift.decl.protocol',
    :jazzy => 'Protocol',
    :dash => 'Protocol',
  },
  {
    :sourcekit => 'source.lang.swift.decl.function.method.static',
    :jazzy => 'Static Method',
    :dash => 'Method',
  },
  {
    :sourcekit => 'source.lang.swift.decl.var.static',
    :jazzy => 'Static Variable',
    :dash => 'Variable',
  },
  {
    :sourcekit => 'source.lang.swift.decl.struct',
    :jazzy => 'Struct',
    :dash => 'Struct',
  },
  {
    :sourcekit => 'source.lang.swift.decl.function.subscript',
    :jazzy => 'Subscript',
    :dash => 'Operator',
  },
  {
    :sourcekit => 'source.lang.swift.decl.typealias',
    :jazzy => 'Typealias',
    :dash => 'Type',
  },
].freeze
```