Add support for reference links to other components

Our docs have lots of links to other components, e.g.:

```md
---
title: Layout Lists
name: layout_lists
category: Layout
---

[Inline lists](/elements.html#list_inline) and
[vertical divider lists](/elements.html#list_vertical_divider)
are particularly useful when you don't know the width of the 
element you want to layout, or you want to vertically align it.

Use [Card lists](/elements.html#list_cards) if you'd like to make 
a grid of vertically and horizontally aligned cards.
```

These links are a little brittle, because we could change the name or the categories of the linked components, and then these links would be broken.

This PR adds the ability to use reference-style links between components, that follow the form `[description of link][component_name]`. These links even work for components in different categories. So the able example would become:

```md
Sometimes you might want to use lists to lay out elements on the page.

[Inline lists][list_inline] and 
[vertical divider lists][list_vertical_divider]
are particularly useful when you don't know the width of the 
element you want to layout, or you want to vertically align it.

Use [Card lists][list_cards] if you'd like to make
a grid of vertically and horizontally aligned cards.
```

If a component belongs to multiple categories, the reference link will link to the first category. For example, if "list_inline" belongs to both the "Elements" and "CSS" categories, a reference link to "list_inline" would look like "/elements.html#list_inline".

If there is a reference link to a component that doesn't exist, hologram throws a warning.

cc/ @drpep @bebepeng @stubbornella 
I think the markdown renderer takes an options hash as an argument, so we should be able to pass it the necessary data.