Add status to needs

This change adds an extra `status` attribute to needs.

Status can be:
```
{ "description": "proposed" }
```
or
```
{ "description": "out of scope", "reason": "out of scope reason" }
```
It's designed to completely replace the `in_scope` and `out_of_scope_reason` attributes, so Maslow will need an update.
Yup:

```ruby
Coverage report Rcov style generated for Functional Tests, Integration Tests, Unit Tests to /var/govuk/govuk_need_api/coverage/rcov
/usr/lib/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:251:in `require': /var/govuk/govuk_need_api/test/unit/need_revision_test.rb:55: syntax error, unexpected =>, expecting '}' (SyntaxError)
...assert_equal { "description" => "proposed" }, revision.snaps...
...                               ^
/var/govuk/govuk_need_api/test/unit/need_revision_test.rb:55: syntax error, unexpected ',', expecting keyword_end
... "description" => "proposed" }, revision.snapshot["status"]
...
```