Plugins

This implements a simple plugin interface for hologram.

Plugins can be listed in the config yml like:

```
plugins:
 - my_plugin.rb
 - your_plugin.rb
```
Hologram will call these plugins in four cases:

1. `.initialize(config, args)` - config is the yml config hologram is using, args are the arguments passed in from the command line
2. Just after a doc_block has been created: `.block(comment_block, file_name, has_plugin)`
3. `.plugin(plugin_data, comment_block, filename)`
4. And after all comments have been processed: `plugin.finalize(pages)`

Each plugin class is created as a new instance so that it can store whatever internal state desired. comment_block is mutable, so changes a plugin makes to comment_block's values will be reflected in the documentation.

When extending from the `Hologram::Plugin` plugins can also easily define blocks within the documentation:

```
[[[plugin:css-test
<ul class="inline-list">
  <li>I
  <li>Am
  <li>Inline
</ul>
]]]
```

The return value of `.plugin` will be used to replace the plugin block. When the plugin is not active and empty string is used to replace the block.