allow multiple init procs on host configurations

This switches the host configuation to allow defining multiple
init procs.  Now the `init` method just pushes the proc onto the
configs list of init procs.  On host data init, the host data will
call each init proc in the list.

This is mostly about flexibility and extensibility.  Now multiple
host mixins can each define their own init blocks and add in their
own init behavior, etc.
Merge pull request #90 from redding/kr-mult-init

allow multiple init procs on host configurations
Allow multiple init and run callbacks using callback DSL

This changes the service handler callbacks for before/after
init/run to use a class level DSL instead of defining the
correctly named method.  This allows defining multiple callback
procs and having them all run.  This is useful when mixins
each add their own callbacks.  Also, with this implementation,
callbacks don't have to worry about `super`ing to make sure all
defined callbacks are run.
Merge pull request #91 from redding/kr-callbacks

Allow multiple init and run callbacks using callback DSL
test runner now serializes response data

This makes for a more robust test.  It will alert devs to serialization
errors in their tests.

This is useful b/c certain versions of BSON error on certain data
types (like `Date` and `DateTime`).  This means your tests can not
only validate the response data itself, but that it will also
serialize.