Add Controller::components() and addComponent()

These methods aim to increase cohesion and consistency between
Controller/View/Table classes by having similar methods with the same
purpose people have fewer conventions to learn.
Update View & Helpers to use method names consistent with features.

Use helpers() and addHelper() as these methods are more congruent with
other parts of CakePHP.
Move unload() into ObjectRegistry.

Make unload() and reset behave similarily. Both remove objects and
detach events.
Make addComponent() also set the property.

This makes it a bit more useful than just being a proxy.
Fix failing tests.

A bunch of tests relied on old behavior, update those tests so they
continue to pass.
A couple changes to see how travis reacts to them
Rolling a manual dataProvider, using the one from PHPUnit makes SQlite
sad
Separate default templates and runtime templates.

This makes for fewer workarounds with managing templates vs. having
duplicate conditions for handling string/array templates.

Refs #3142
Make _helpers & _components properties protected.
Merge pull request #3140 from markstory/3.0-unloading

3.0 unloading
Merge pull request #3145 from cakephp/templates-fix

3.0 Separate default templates and runtime templates.
Not dropping the connection for
Only dropping tables and the conneciton when tehre are no nested
testsuites
Going nuclear: All the fixtures process is done for each test method
Now trying to only drop tables at the endo fo the tetsuite
Being permissive on th etime  test takes to complete
A major surgery for FixtureManager, to fix failing tests in travis

Some important changes:

* Tables are not dropped at the end of the test suite
* Tables are not dropped by default at the end of each test
Fixing last failing test case
Skiping test again
Travis is still unhappy, moving more stuff around