indexOfListener now always uses manual method.

Also removed useless comments and the checking for a native
Array#indexOf.
All listeners are now stored within objects.

This will allow me to attach meta data to the listener items. This
involved a rather large change in the fundamental workings of the class.
Added a public flattenListeners method.

Takes an array of listener objects and returns the listener functions.
Tests now make use of flattenListeners.

This remove a lot of repetition to convert to a different format when
testing.
Added and tested the addOnceListener method.
Merge branch 'feature-once' into develop

Conflicts:
	EventEmitter.js
Removed some more "state the obvious" comments.

I was commenting that returning this allows chaining. It's pretty
obvious to be honest.
Named all of the API methods.

Should make debugging a little easier in some situations.
Removed the use of the onevar style in tests.

It might look pretty but it makes merging and altering the declarations
hell in some situations. Verbosity is nicer in the end.