BUG: Use ontology terms for EBI investigation_type

Use the terms stored in the database and add a new argument, `new_investigation_type`, which is only relevant if the value passed in `investigation_type` is `Other`.

See issue #405.

NOT READY FOR MERGE - I couldn't run the tests in my system.
Since the task of the test is to check that a user defined ontology is
added (regardless of what may or may not exist in the table already), I
don't think it makes sense to check that the added term is the only
thing that exists there.

On (Nov-07-14|13:09), Joshua Shorenstein wrote:
> > @@ -45,6 +45,14 @@ def testTerms(self):
> >              'Pooled Clone Sequencing',
> >              'Other'])
> >  
> > +    def test_user_defined_terms(self):
> > +        obs = self.ontology.user_defined_terms
> > +        self.assertEqual(obs, [])
> > +
> > +    def test_add_user_defined_term(self):
> > +        self.ontology.add_user_defined_term('Test Term')
> > +        self.assertTrue('Test Term' in self.ontology.user_defined_terms)
> 
> Since this is a list, probably better to do
> ```
> self.assertEqual(self.ontology.user_defined_terms, ['Test Term'])
> ``
> 
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/biocore/qiita/pull/522/files#r20037576