Solidify test methods
Replace auto id with id generator. Add etag and etag handling.
Add more test
Better error message
Add default creator name
Reduce transaction boundary to within the DOI dao
Set propagation to requires_new
Set propagation to never
Actually moving the transaction management to the DAO
Merge pull request #359 from eric-wu/develop

Replace auto id with id generator, add etag and etag handling, more test.