refactor to a plugin

@ianstormtaylor this move the plugin out of integrations to here. all the tests are updated and passing (we removed a bunch of them because the are no longer needed since we are just using `analytics.track` and such now, on a regular integration).

we can merge this now and because duo allows using two different versions of the same component, we can use both 1.0.0 and this plugin version (1.3.0) in the same project.

ready to merge whenever you guys are good with it!

/cc @yields 
is this the api we ended up with? i prefer the one that returns a tester i think, instead of creating a brand new integration to compare them

slash can we simplify this example to have less deps up there, since it feels very complex