New feature: Invariant

Continuing down the path of following rpsec-given, this PR adds an Invariant block.

The code is pretty straightforward:  The Invariant function manages a list of blocks that are active in the current scope  (following the pattern of When); and each Then prepends the active invariant blocks to its list of expectations before evaluating them.