refactor custom validation tests #13

adjust code causing issues with PhantomJS
fix conflicts in pattern validation tests #13

PhantomJS does not set `.validationMessage` on a `patternMismatch`.
Removed the tests that were checking that. It is sufficient to test
`validityState.valid` and `validityState.patternMismatch` which pass
successfully in all browsers.
use `.checkValidity()` to test `invalid` events. Fixes #13

PhantomJS was not triggering invalid events onsubmit. Switching to
`.checkValidity()` as the trigger works in Chrome, IE8 and PhantomJS.