Implement a naive version of required variables in the match operation
Use the requiredVariables information to optimize the expressions used for simple, reserved, path segment, fragment, and label expansions (fixes #20)
Add tests for required variables