Dynamic updating

This has multiple features / fixes:
1. Slides / markers can now be updated with a .carousel() call, and it will init instead of changing settings. If the current slideIndex is changed, and there are less or more slides, it will automatically re-init.
2. Local variables are now instance based, in the past _slideIndex, _markersStore, _slides, _interval, would be shared across all instances on a page.
3. Controls now has a 'hover' settings, where the controls are visible when hovering.
4. Destroy implemented
5. Default width and height are now null to inherit from element by default.
6. slidechanged is triggered on the element any time the slide index changes
Merge pull request #1 from npbenjohnson/patch-3

carousel #178  #375 Dynamic updating, widget refactor