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 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