some refactoring of the import of Doi module for active record

so that the model states if it supports_doi? to allow the types to be discovrabel and avoid hard-coded types in the Utils class. Also makes some of the code a bit cleaner. Removed from acts_as_asset, as currently not all assets support doi.
updated doi_locked_after to doi_time_locked_for

its a configuration flag to say that a DOI cannot be generated for an asset
until a particular period after it's creation time
fix to can_delete? based on the doi status

needed fixing after earlier refactoring, the module include order is important for
state_allows_delete? and must come after acts_as_authorized, or acts_as_asset
some code tidying and refactoring of datacite_doi lib
removed some duplicated code for doi generation

moved over to the model, and it can be generated doi can be got directly from the asset instance