Refactor the TabbedArea component

Hi Again!

I was having a play with the TabbedArea component and ended up making a few changes:

1. Use `key` instead of array index, this allows Tabs to be reordered without updated without needing to working the new `activeIndex`.

1. Use render functions instead of pushing to arrays stored on the component, this is more consistent with the other components.

1. Removed `utils#isArray()` we should be able to rely on an es5 environment since [React itself requires this](http://facebook.github.io/react/docs/working-with-the-browser.html#browser-support-and-polyfills).

Let me know what you think/ merge.