Refactor regex tests

Will be helpful for handling Java 8 features flexibly.
Make charsets/union variadic

For slightly more readable code.
Add support for java 8 character classes

Added plumbing code for feature detection, used it to add \R \V \H \h,
and the changes to \v.

This means we'll have to start testing on both java 7 and java 8.

Thanks to (@miner)[https://github.com/miner] for doing most of the work
of supporting the Java 8 features.