Open search

A proposal that resolves #2.

## New Features

- The option to toggle an open search box
- Ability to specify both a custom search as well as an optional search box
- Default to open search if no custom search is specified
- Syntax highlighting in displayed embed code (courtesy of [prism.js](http://prismjs.com/))
- Global initialization/update of embedded widgets (removes duplication of `widget.js` code in `main.js`)

## Considerations
The `widget.js` code has been modified to allow the widget to be globally initialized/updated.  The upside is that all the duplicate widget code is stripped from `main.js` and can now be managed exclusively in `widget.js`.  The downside is that because `widget.js` needed to be modified to allow for global methods, this PR relies on the acceptance of #9.

I'll provide a little more context around some of the decisions inline.

Let me know what you think—hopefully this will surface a few new ideas even if you all decide to go in a different direction than #9!