Adding Update runner and specs
Refactoring service methods

Extracting a private finder for works
Adding DatabaseStorage#find_or_create_by_pid

This method is rather large and may need to be extracted into a
service class. There is plenty of logic occuring, and it needs to
consider how the data is updated.
Adding Update/Create switch for DatabasePersister

Perhaps these should be separate classes, and they reflect very
different concepts.