Rename `Worker` to `ConnectionHandler`

This renames the `Worker` to `ConnectionHandler`. Worker was a
poor name for this piece of logic and comes from assuming the
internals of DatTCP. This renames it to more accurately describe
what it does, handles a new connection. This means parsing a
request, running its route and writing the response. This doesn't
change any functionality, its just a rename.
Merge pull request #134 from redding/jcr-rename-worker

Rename `Worker` to `ConnectionHandler`
Add `render` to `TemplateSource`, decouple from `ServiceHandler`

This adjusts the template rendering behavior to decouple service
handlers and a template source. `TemplateSource` now provides a
`render` method which is all the service handler needs to call to
render a template. The `TemplateSource` takes care of finding the
templates and finding a matching configured engine and calling
`render` on it. This keeps service handlers from having to know
how to lookup engines and centralizes all the file extension
handling.

This also tweaks the template lookup slightly. Sources will now
reject templates for which they do not have a configured engine
for. This covers ensuring we do not select a `.rb` template
(since we don't allow engines to be configured for this extension)
and avoids a really minor issue with trying to render a template
when there are two or more files with the same name but different
extensions. If you try to render "template" and you have a
"template.erb" and a "template.json" file in your source path,
then the previous logic would always choose the erb file. If the
source was configured to work with json but not erb you can't
render your json template. Only selecting templates that are
configured helps to pick the correct template in this rare
situation.
Merge pull request #135 from redding/jcr-add-render-to-template-source

Add `render` to `TemplateSource`, decouple from `ServiceHandler`
Split service handler tests into unit and system tests

This updates the testing for service handler to split the existing
tests into unit and server tests. The unit tests no longer use the
test runner to test the service handler. They are strictly unit
tests testing the behavior, but not testing how a service handler
would typically be tested. This is now done in the system tests for
service handlers. In these tests, the test runner is used to run
the same handlers used in the server system tests. This ensures
that service handlers (and their runners) work as expected in
both live and testing scenarios.

Since we switched to using the app server handlers, I was able to
remove the `test/support/service_handlers` file. Both of these
files had the same "kinds" of service handlers. I wanted to have
the same handlers used in a live and testing scenario, so I
decided to re-use the app server handlers and remove the other
handlers.