Allow removing and re-adding Components.

Changed remove() to remove a Component from the DOM, but not destroy it (as in D3)
nor to disconnect it from the IBroadcasters it was listening to.

ComponentGroup now has removeComponent() to remove a specific component from the
ComponentGroup and the DOM.

destroy() replaces the previous functionality of remove(), which disconnects a
Component from the DOM, disconnects it from all the things it was listening to, then
nulls out its element.

Attempting to anchor() a Component that's already anchor()-ed no longer throws an Error.
Instead, the Component will be re-anchor()-ed to the new DOM element.
Streamline a Component test.

It was re-testing the ability to re-anchor.
Added _setup(), removed destroy(), added add/remove quicktest

_setup() is called during anchor() if the Component's element hasn't
been created yet. Subclasses override _setup() to add additional
elements to the DOM.

The implementation of destroy() can be somewhat tricky (Renderers
may need to disconnect from their data carefully, etc), so that has
been deferred until later.

Added a quicktest for testing addition/removal of Components.
Remove unnecessary return statement.
Merge branch 'master' into component-remove

Conflicts:
	src/core/component.ts
Fix failing axis test.

The larger bug causing the test failure has been filed as #374.
Merge pull request #371 from palantir/component-remove

Allow removing and re-adding Components.