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.
Sorry for not being clear.  Typically, I would say a term is either in the ontology or not, so this function should return a bool (so, return `False` if the term is not in the ontology and let the caller decide how to handle that case).  However, if a term *is* in the list of terms, then there are two possibilities:

1. The term is in the actual ontology defined by, e.g., ENA;
2. The term is *not* in the actual ontology, but it is one of the user-defined terms that we have added.

And what I'm suggesting is that the function should return a value that describes these possible states (not in the ontology at all; not in the actual ontology, but is one of the user defined terms; or in the actual ontology).  Is this clearer?