Run post_handler in a transaction and rollback if there were errors.

This is a bandaid to get things running in a transaction since currently
they are not. Ideally we would run more of the view in a transaction.
Make all dns api actions run in transactions
Make tests run in a TransactionTestCase
Add search features

This patch adds the following:
    * model introspection for search directives
    * inequality search operators
    * explicit strict equality and fuzzy equality search operators
    * quoted search terms for the left hand side of directives
    * refactored test code

Users can now specify what field on a model they want to search. The
syntax for specifying the field is shared with how django annotates
searches in Q objects (using '__' to specify traversing to a related
model.)

For example, say a user wanted to filter on systems with the status
'production'. They can now search:

    sys.system_status__name='production'

Internally, the compiler will parse the rhs and attempt to verify that
'system_status' corresponds to a relational field on the 'sys' (System)
class and that the model referenced by 'system_status' (SystemStatus)
has a field 'name'. If things checkout the compiler will pass along a Q
object for filtering systems that looks like:

    Q(**{"system_status__name": "production"})

The following query is now supported:

    sys.hostname~admin1 sys.server_model__vendor~HP \
        sys.purchase_date>=2014-01-01 sys.notes="/foo ba[zr]"

This search does a fuzzy search for systems with "admin1" in their
hostname, selects for servers who's server model is supplied by vendors
with "HP" in their name, were purchased after (or equal to) January 1st
2014, and that also have a notes field that match the regular expression
"foo ba[zr]"
make sure regular directives only allow the strict equality operator.

If a director wants to support something like ~ or >, they just need to
remove the call to the gaurd function.
initial service work
removed dns-title and played with css. I hate css.
make tables sortable
added more fields and wrote an intial import scirpt
added js
new migration
default values and search on list page
show services on search page. messing with default values.
default values
title() defaults and default sorting in the list view
initial work on dependencies
rename some relational labels
add service search capabilities
add service searching
Remove pointless table