Adding Configurable DOI Support

This commit adds the ability to register various persisted classes
(i.e. ETD, GenericWork) for remote identifier minting, with an initial
focus on DOI generation.

One interesting thing to note:

Once you register a persisted class as being DOI mintable; Then the
object's publisher becomes a required field IF we are assigning a
DOI for that item (if they want a DOI assigned).

Closes planning/ndlib#33
Closes planning/ndlib#159
Closes planning/ndlib#167
Closes planning/ndlib#191
Closes planning/ndlib#204
Closes planning/ndlib#205