Refactor duplicated code into one shared method.
Add a failing spec for handling a race condition

The spec uses a hook method to simulate the insertion of an
acts_as_xapian_job in another process for the model.

Credit to: http://stackoverflow.com/questions/2017587/simulating-race-conditions-in-rspec-unit-tests

Conflicts:

    vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb
Handle a race condition in index update requests.

Conflicts:

    vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb