Separating DOI Assignment behavior from structure

By atomizing DOI assignment and structure the parts are, in theory,
able to better move independently. I am especially happy about
removing the after_save callbacks that are pernicious.

Closes nblid/planning#274
Merge pull request #231 from ndlib/separating-being-from-doing

Separating DOI Assignment behavior from structure