Initial text-wrapping algorithm for tick label text on axes

First crack at #357.

Uses the "telegraph" method:
 - It greedily adds characters up to a starting cutoff.
 - After the starting cutoff, if it finds a space character, it will start a new line there.
 - If it runs out of horizontal room before finding a space character, it will add on a hyphen and start a new line.
 - If it runs out of vertical room, it will truncate the last line with ellipses.

If a tick label gets broken into multiple lines, each line is put in a separate <tspan>
and moved to create the appearance of multiple lines of text (SVG does not currently
have automatic text wrapping).

Also improved the default formatter for axes so it only tries to scale numbers.
Remove extraneous <svg> from quicktest.
Adjust tests to be less senstitive to actual text wrap position

PhantomJS sometimes wraps text differently (probably due to differences in rendering).
Add grunt-bump to dependencies
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.
Merge pull request #368 from palantir/tick-label-wrapping

Tick label wrapping
Update Gruntfile to use grunt bump. Yet untested
Add gittag to Grunt release workflow
Remove gittag for now
Got the release script working
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.
Merge pull request #372 from palantir/grunt-release-command

Grunt release command
Fix error messages in minimumHeight, minimumWidth
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.
Revert "Update customProjector example to use a scale. Doesn't work yet (pending merge to gh-pages)"

This reverts commit df014cfaed10a0eba602ebb0355ef83452faf133.

Conflicts:

	tutorials/customProjectors/customProjectors.js
Add subplots tutorial.