Visualization reboot: v3.1.0-beta

Heavy refactor under the hood, exposing a bunch of new goodies:

* [Keen.Dataviz](https://github.com/keenlabs/keen-js/tree/v3.1.0-beta/src/dataviz) class
* [Keen.Dataset](https://github.com/keenlabs/keen-js/tree/v3.1.0-beta/src/dataset) class (based on `Keen.Dataform`)
* 150 new tests to cover these two classes, along with expanded test coverage that includes iOS (6-7.1), Android (4.1-4.4), and Chrome/Firefox Beta builds.
* Refactored [loading script](https://gist.github.com/dustinlarimer/19fedf00c44d120ef8b4), to make it easier to stay up to date with the latest version. Now, when users see the JS blob for embedding our library in the page, it'll look like this:

```js
!function(i,o){i("Keen","/3.1.0-beta/keen.min.js",o)}(function(a,b,c){var d,e,f;c["_"+a]={},c[a]=function(b){c["_"+a].clients=c["_"+a].clients||{},c["_"+a].clients[b.projectId]=this,this._config=b},c[a].ready=function(b){c["_"+a].ready=c["_"+a].ready||[],c["_"+a].ready.push(b)},d=["addEvent","setGlobalProperties","trackExternalLink","on"];for(var g=0;g<d.length;g++){var h=d[g],i=function(a){return function(){return this["_"+a]=this["_"+a]||[],this["_"+a].push(arguments),this}};c[a].prototype[h]=i(h)}e=document.createElement("script"),e.async=!0,e.src=b,f=document.getElementsByTagName("script")[0],f.parentNode.insertBefore(e,f)},this);
```