Create database and tear down/recreate at end of each test. Fixes #195

This pull request means that there is always a populated test database that is wiped and re-created at the end of each test. This gets around some issues we've had where a database was required before tests were even run.
Gotcha, thanks for the explanation. I don't know how this could be
possible but can we have the tests independent of the creation of the
initial database? It would be ideal to have this as a one-step process.
Such that to run the tests I would only need to execute the test file
that I want to check.

On (Jul-21-14|10:04), Joshua Shorenstein wrote:
> >              def setUp(self):
> >                  super(DecoratedClass, self).setUp()
> >                  self.conn_handler = SQLConnectionHandler()
> >  
> >              @drop_test_database
> > +            @build_test_database
> 
> This is taking advantage of the fact that you can have multiple decorators nested on a single function. Now instead of creating the database on set up and destroying it on tear down, we create the database initially in the environment set up script and then, on tear down, drop the database and rebuild it. Because the decorators are executed top-of-list to bottom-of-list, it will first run the `@drop_test_database` decorator, then the `@build_test_decorator`, then the rest of tear down. This means we always have a populated database except for the few microseconds between drop and build running. 
> 
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/biocore/qiita/pull/198/files#r15181098