Add some more attributes to the Need factory
Save a snapshot of each need on create or update

When a need is created or updated, save a snapshot
of the need in a NeedRevision document. If the
`save_as` method is used, basic user information
can also be provided.
Don't use destructive methods on the snapshot value
Record details about the author when a need changes
Don't create a need if author details aren't provided

If author details aren't provided with the request,
don't save the need, instead returning a HTTP 422
status and a JSON hash containing an appropriate
error message.

This also restricts the accepted author information
keys to name, email and uid. Only one of these is
required in order to save a need, but as much detail
as desired can be provided by the API client.
Fix an integration test failure based on ordering

Apply a temporary fix to this test to explicitly order
the results which we're asserting on. This should be
removed once we have done some work to return needs in
an order.
Merge remote-tracking branch 'origin/master' into event-history

Conflicts:
	app/models/need.rb
	test/unit/need_test.rb
Add indexes to NeedRevision
Merge pull request #9 from alphagov/event-history

Save a history of revisions for a need