service handler render method

This adds a `render` method to the service handlers.  This method
looks for a matching template file in the source and renders it using
the engine configured with its extension.

To set this up a few things were needed:
* a `NullTemplateSource` to handler the case where no default template
  source has been configured and no source was passed as an option
  to `render`.  This has no path and no custom engines.  Null behavior only.
* update the engine `render` method API to take a `service_handler` and
  a `locals` param.  This is more descriptive of what the params are
  and also provides for passing custom locals to the templates.
* setup a test engine/template and configure it in the test helpers.
  This is so I can test a handler that renders the test template and
  make sure everything is hooked up proper.

Note, I also removed manually requiring `test/support/services' from
the tests as this is setup as the services file in test helpers.  It
was getting required in multiple times and throwing warning.
Merge pull request #101 from redding/kr-render

service handler render method
sanford runner; remove runner configuration

This removes the concept of a default runner and configuring runners
on hosts.  Instead, there is now only a `SanfordRunner`, which hosts
use to run their handlers, and a `TestRunner` which you use to run
handlers in tests.  The sanford runner is basically equivalent to
what the default runner was before.

I think it unnecessary overhead to provide runner configuration to
customize runner behavior.  Anytime you wish to customize the runner,
you have to be sure to do everything the default runner was doing and
then keep that in sync.

Intead, the runner should provide hooks to add custom behavior.  This
gets the benefit of just having to maintain what is custom and not
what should be default.

In a coming PR, I'll be adding handler callbacks that only the default
runner will call.  This will be the place to customize runner behavior
on a per-handler basis.  This is setup for that work.
Merge pull request #104 from redding/kr-sanford-runner

sanford runner; remove runner configuration
`before` and `after` handler callbacks

This adds support for before and after handler callbacks.  The
difference between these and their *_init/run counterparts is that
these callbacks are intended to be run by the runner - specifically
only the SanfordRunner.

Use the normal callbacks if you want to add specific handler behavior
and need to test it.  These callbacks are meant more to customize the
behavior of `SanfordRunner` (since you can no longer configure your
own runner).  It is important to remember that these callbacks are not
run by the test runner.
Merge pull request #105 from redding/kr-runner-callbacks

`before` and `after` handler callbacks
hotfix: revert requiring the manager at the top of the cli file

This was originally fixed in:
dbcb770a721c8779f636013a1fb95713cea1b000

But then it got accidentally reverted in:
107e3589d18067b5b01983e60df58087e1d12a8e

This reverts the revert :)

/cc @jcredding
version to 0.10.0

* template engine class for defining custom rendering engines #97
* template source class for configuring template sources #98
* move sanford config and hosts util classes into their own files #99
* configure template source #100
* service handler render method #101
* sanford runner; remove runner configuration #104
* `before` and `after` handler callbacks #105

/cc @jcredding
templates: disallow engine/template exts

This sets up disallowing certain extensions as valid template exts
for binding engines and looking up templates files.  Right now the
only ext disallowed is `.rb`.

The reason we want this is that there are times you want to name
the template after a corresponding ruby file - maybe the handler
and the template have the same name - one with .rb and the other
with the template extension.

Because of the way glob works, you can't guarantee any order so
if your template file name isn't unique, the glob may get the
wrong file.  We make the glob aware of these disallowed files and
have it ignore them.
Merge pull request #107 from redding/kr-disallow-exts

templates: disallow engine/template exts
version to 0.10.1

* templates: disallow engine/template exts #107

/cc @jcredding
switch to the latest assert for test stubbing

The latest assert adds its own native stubbing API. The switches
to that. No behavior changes - just test cleanups.
Merge pull request #111 from redding/kr-assert

switch to the latest assert for test stubbing
Feature branch, modify Sanford configuration and startup logic

This is an effort to modify Sanford to work more like Deas in how
it is configured and is started. The goal is to make them similar
and also simplify some of the oddities of working with Sanford.
This will change the CLI to take a configuration file, which is
expected to define a Sanford server. The server will contain all
the configuration for the IP, port and other options. The server
will have (or be given) a router. The router will be where
services are routed. Service handlers will continue to work as
they previously did. This branch is a collection of the changes to
get the changes working as expected.
Add `Router` and `Route` for routing and running services

This adds a `Router` and `Route` class. The `Router` will replace
part of the `Host` and `HostData` logic for routing services. This
also adds a `Route` class that will be built when a service is
added to the router. This will handler building and running a
`SanfordRunner` and returning the response. This follows Deas'
implementation and is part of the effort to modify Sanford's
configuration and startup logic.
Merge pull request #109 from redding/jcr-add-router

Add `Router` and `Route` for routing and running services
Update to use the new DatTCP, rename server to server old

This updates Sanford to work with the latest DatTCP but also
renames server to server old. This is done to make room for
reworking the server without breaking sanfords full functionality.
Until we are ready to switch to the new server logic, the old
logic can continue to be function. This switches to using the
new DatTCP with leaving the server logic as unchanged as possible.
This doesn't change any functionality, just switches out to the
new DatTCP and renames the server.
Merge pull request #112 from redding/jcr-new-dat-tcp

Update to use the new DatTCP, rename server to server old
Add new `Server` DSL

This adds a new `Server` and the DSL for configuring it. This is
part of the effort to rework the `Server` and startup process for
Sanford. This moves most of the `Host` configuration over to the
`Server` and the DSL for configuring it as well. This also moves
the template source configuration to the `Server` from the
global Sanford config. Both the `Host` and `Config` will be
removed later in favor of the new `Server`.
Merge pull request #113 from redding/jcr-change-server

Add new `Server` DSL