Add `cache` option allows for unchanging data to only be serialized once

It's common for data being exposed to not change between requests (this
is most common for app-level data); this change adds support for a
`cache` option which signal express-state that it's safe to cache and
reused the serialized form of the data.

    app.expose(constConfig, 'config', {cache: true});
Fix issue with parent <- child Exposed instance relationship

This fixes an issue with namespaces to make the following work as
expected:

    app.expose('foo', 'window.foo');
    console.log(res.locals.state); // => window.foo = "foo";

    app.expose('bar', 'window.bar');
    console.log(res.locals.state); // => window.foo = "foo";

This also brings test coverage back to 100% and adds more code comments.
Tweak code formatting and comments
Optimize private Exposed method to get applicable namespaces
Fix typos in code comments
Fix typos in tests
Tweak conditional in lib/exposed.js for carity
Warn about deprecated `expose( obj, namespace, local)` API signature
Add docs for `{cache: true}` option and improving serialization perf
Add HISTORY entries
Merge pull request #19 from yahoo/cache

Add `cache` option to improve serialization performance