Add pimple as a dependency.

In order to use create controller objects I'll probably need some DI
magic.
Switch databases for the test suite.

Using a separate database is easier/safer than hoping to always prefix
collection names.
Add a service container.

Add the various pieces that will be needed for the watch functions list
to the service container. Also add a stub for the watch controller as
well.

Using pimple will allow the controller objects and all their
dependencies to be separated from the global soup that Slim naturally
encourages. My goal is to have functional tests for all the various
controller methods.
Convert watch functions to a controller object.

Having an object for the watch function logic that isn't an anonymous
function stuck in the global soup will make it much simpler to write
tests for functionality.
Fix not being able to remove watched functions.
Move custom report logic into a controller object.
Add visibility keywords to properties.
Move run code into a controller class

Move files around and delete old route code.
Fix tests and remove Xhgui_Db.

With the introduction of Pimple we don't need to maintain more
singletons.
Update header include to use new code.
Fix error on callgraph & url page.
Fix broken searching.
Merge pull request #48 from preinheimer/controller-object

Refactor routes to be controller objects