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.
To clarify, what I think you’re saying here is that using the braces for a hash here causes Ruby to interpret that syntax as a block, so you’re choosing to use `Hash["description" => "proposed"]` rather than wrapping all the `assert_equal` arguments in parentheses, because it looks better.

Is that about right?