Add status to need, and set it on need creation

This also bumps the 'shoulda-matchers' gem to pick up the `validate_inclusion_of` matcher.
Return need status when creating or viewing a need
Need revisions should recursively clean up snapshots

The snapshot in the need revision should clean up nested attributes (like 'status')
so that "_id" doesn't show up in the change notes when the need status changes.
Push the need status into elastic search
Display need status in need lists and search results
Allow setting the need status to "out of scope"

A reason needs to be given whenever this happens