Required flags

Implements required flags as originally discussed in #85 

If we *really* don't want to change the interface, we have some other ideas of ways to do it, but are submitting this as the clean approach.
 -- @ivey @jhowarth 
It'd be nice to DRY this up by combining with the above conditional. The only thing that differs is which error you print.