Add support for optional plugins, minor fixups

We're doing something similar [in the cache plugin](https://github.com/mozilla/node-gonzales/blob/develop/lib/plugins/cache.js#L15), maybe we should use (or write) a generic solution for this.