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.
Is there a particular reason this is using `Hash[]` rather than just `{}`?