Clearing timeouts on when destroying validator

Hey, thanks for the library

I noticed that the `destroy` method was not removing the `window.setTimeouts` created by the `defer` method.
I was using the validator within a modal with a 3 second delay. After the modal was destroyed the timeouts would still fire and the `showErrors` method was causing `undefined` errors.
I have added a `clearAllDefered` method, which is called on `destroy`

I wasn't sure how to add a unit test to check if any timeouts still existed, sorry

**Test Result**

```
Running "jshint:gruntfile" (jshint) task
>> 1 file lint free.

Running "jshint:src" (jshint) task
>> 1 file lint free.

Running "jshint:test" (jshint) task
>> 2 files lint free.

Running "qunit:files" (qunit) task
Testing js/tests/index.html Starting test suite
================================================

✔ All tests passed in 'validator' module

================================================
Tests completed in 246 milliseconds
40 tests of 40 passed, 0 failed.
OK
>> 40 assertions passed (246ms)

Done, without errors.
```