Heavy refactoring of Helper system.

HelperInterfaceExtra is no longer a thing. I don't have to wait for PHP
5.6 for this any longer, as I'm now using a DI container for the
helpers, which involves using reflection. I was trying to avoid it, but
it does make life easier.

There'll be a bit more refactoring once a patch of mine is accepted into
the Aura Di module.

I've overridden the DI Factory class to add support for interface
constructor params. Pending discussions, hopefully this addition will
get to the point of being accepted into the core Di module as well.
Small type hint and PHPDoc fix.