Variable assertions

As discussed in #44 

Instead of a single ambiguous `required` method, we can now `->assert()` a number of assertions against one or more variables.
@vlucas you can see examples here.