Use object branding technique to extend Express

This changes the approach for how `express-state` extends `express`. It
now only extends Express app instance which are explicitly passed in,
whereas before the `express` prototype objects were extended.

This technique is explained here:
https://gist.github.com/ericf/6133744

Another benefit is this module no longer needs to `require('express')`!
Add HISTORY entry to change in how this package extends `express`
Update basic example to use new Express extension mechanism
Make sure the app is _always_ returned from `extend()`
Change now Exposed instance's properties are defined
Throw TypeError when trying to serialize native built-in functions

This changes the serialization process of functions to throw when a
native built-in function is trying to be serialized.
Merge branch 'branding'

Conflicts:
	HISTORY.md
Merge branch 'native-code'
Update HISTORY entries with Issue numbers and tweak formatting