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.
This migration appears to be based on the assumption that `in_scope` is either `nil` or `false`. I seem to remember those are the only values we support in the app, but is it worth being explicit here, even if it’s by raising an exception on finding a `true` value?