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.
I thought about this but it is meaningless to have an investigation type
be "Other", the concept of a "new_investigation_type" seems to only be
useful for EBI.

On (Nov-07-14|14:31), adamrp wrote:
> > @@ -1264,8 +1264,8 @@ def validate_investigation_type(self, investigation_type):
> >          QiitaDBColumnError
> >              The investigation type is not in the ENA ontology
> >          """
> > -        investigation_types = Ontology(convert_to_id('ENA', 'ontology'))
> > -        terms = investigation_types.terms
> > +        ontology = Ontology(convert_to_id('ENA', 'ontology'))
> > +        terms = ontology.terms + ontology.user_defined_terms
> 
> I think we need two variables here, because I think the `investigation_type` should still have to be one of the *non-user defined* ontology terms (even if it is `Other`), but in the case that it is `Other`, also have another variable to keep track of which *user-defined* term the user selected
> 
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/biocore/qiita/pull/522/files#r20042116