Refactor revision functionality.

The big difference here is that, instead of the decorator pairing up
revisions with their predecessors to be passed into a method further
down the line, we now have a Changeset class, which decorates a need
revision and includes knowledge of which revision came before it, so it
can have a no-argument method to calculate the changes. This means the
presenters don't need to know about how to interpret a pair of
revisions.

The names of `NeedDecorator` and `RevisionDecorator` also weren't very
descriptive as to what they were actually *doing* to decorate needs and
revisions, hence becoming `NeedWithChangesets` and `Changeset`.
Change code to fix flaky test.

functional needs_controller_test line 32 was failing due to the return
order of the needs.

Was getting 3 different return orders: 1,2,3,4,5; 2,1,3,4,5; 3,4,1,2,5.
Make Changeset a model and remove delegation

Fix tests to match new structure.

See: https://github.com/alphagov/govuk_need_api/pull/12#issuecomment-27677787
Remove sort of needs in Need Controller: Sort in tests
Merge pull request #12 from alphagov/changeset-refactor

Refactor revision functionality.