Updated to use an array of player objects

Now we pass around player objects, and we store all of those in
_players, which is an array (again). This is cleaner. I like this. It's
easier to inspect player objects and much clearer as to what's getting
passed around. We also allow for the selector that gets the controller
to be either the iframe id or the id that was supplied (either by
javascript injection or attribute declaration).
Made getController more flexible

I hated that depending on if it was the external controller or the true
pdk, the controller was accessed differently. This should fix that
problem.
Tidying up

Most of this is tidying, but I did clean up the events dispatching and
the payloads.
Updated builds for version 0.7.4

We have all the code in place to handle the iframe correctly, but it
just isn't working.