import the logger
Check for required configuration variables

This way we don't start up without having the required variables set.
Import an authorization/authentication policy, and set them up
Add deform/deform_bootstrap to the mix
We will be sending emails, so add email sending...
Start building up the traversal tree

Moving away from well-defined and well-intentioned URL dispatch to using
traversal for finding everything.
Set the root factory
Remove all old routes/view_configs

Throw away all the old routes and all of the old view_configs.
Two routes, both with predicates...

When we go process a request, we want to see if the management URL is
part of the request, and is so we set up a different route pattern, with
eventually a different root.

This will allow us to run the same Pyramid app, yet have many URL's
pointing at it without making the management interface available on all
of them.
Change import to use tuple
Remove the redirect to home
Update development.ini with latest changes
Missed a comma, this caused Python to concat the two lines
Add a domain property to the request object

This is mainly useful during development and testing when we need to
match the domain but we don't want to have the port hanging around as
well which is the case if we use .host.
Use pyramid's not_ predicate reverser

This means instead of having two functions we can have one!
Require tag entries to be unique...
Add Domain model

Each Entry now belongs to a single Domain. This will allow a user to
have various different "domains" that they manage blog entries on.
Make initialise DB much better

Instead of trying once and if failed, we here try to add any changes,
this way we can add more defaults later on for testing purposes and it
will correctly handle them as required.
Add an index on domain_id

This will allow the query planner to use the index when searching for
entries, rather than doing a sequential table scan.