Switch from Jasmine to Mocha

Switching to Mocha+Chai+Sinon with two environments: node+jsdom and browser+SpecRunner

---

Also had to change default KeyExtractor return an empty string if it's the `name` attribute is falsy.

```diff
- return $el.prop('name');
+ return $el.prop('name') || '';
```

This will not affect anyone, because according to browser specs all attributes are `toString`'d, and all forms elements should have a `name` of `""` unless it is set to something else. However, jsdom has a [bug](https://github.com/tmpvar/jsdom/issues/808) where it will return `null`.
I'm 100% certain this will be fine knowing what is in the codebase