Support custom validators [abide]

### Abide custom validators
This pull request adds the ability for developers to define their own custom validators for abide, as well redefines the `equalTo`

See changes to docs for more information.

### Note about jquery's `.data()` function
One note here is I discovered a jquery bug with `data`.  Try this in your browser's console:

```
div = $("div:first");
div.attr("data-foo", "bar");
// here you notice the attribute data-foo="bar" added to the div
div.data("foo");
// sweet it was "bar"
div.data("foo", "baz");
// hmmm now you notice the attribute data-foo value did not change from "bar"
div.data("foo"); // => "baz"
div.attr("data-foo"); // => "bar"
```

What this means is that when we add `data-invalid` attributes to the invalid elements, as far as jquery data is concerned, they're never removed.  This is fine if you're selecting elements like `$([data-invalid])` but could cause problems for developers working with `.data()` jquery function.