[WIP] feature: ionSlideBox: automatically update when ionSlides are added/removed

**Proposal**
ionSlideBox automatically updates itself when slides are dynamically added/removed.

**Example of using this functionality**
```
<ion-slide-box>
    <ion-slide ng-if="showIntroSlide">...</ion-slide>
    <ion-slide ng-repeat="thing in things">...</ion-slide>
    <ion-slide>...</ion-slide>
</ion-slide-box>
```

**Bug Fixes**
Fixes #1578.
Possibly affects #1501 and #1473.
Should fix #1342.
Possibly affects #782.

**Integration**
It's now unnecessary to manually call `slideBox.update()` when slides are added or removed.  I'm not sure if there are other times when `update()` needs to be called, otherwise we could possibly deprecate it.  How should this change be messaged to developers?  Should we `console.log('Warning:...')` when `slideBox.update()` is called?

**Todo**
- [ ] run ionic tests
- [ ] write new tests
- [ ] see if dynamically re-ordering slides works, or if it's possible to make it update automatically in that case
- [ ] handle this edge case where `setup()` clones some children -- what will happen if a slide is then added or removed?
```
      //special case if two slides
      if (browser.transitions && options.continuous && slides.length < 3) {
        element.appendChild(slides[0].cloneNode(true));
        element.appendChild(element.children[1].cloneNode(true));
        slides = element.children;
      }
```
I'm glad you mentioned this, because I wasn't 100% sure on this one.

I was trying to balance the fact that other directives could be operating on the same element, so I didn't want to risk breaking those directives by destroying data and events associated with the element.  On the other hand, I do want to get it out of the DOM here so that when the parent ionSlideBox updates itself based on it's children, it detects the correct set of slides.

I see now that we're using the DOM to represent data, which is generally a bad practice.  I think I should refactor this to register and de-register ionSlides more explicitly with the parent ionSlideBox controller.  I'm not sure what else that will entail at this point, but it could be tricky to manage the slide order.  Dynamic slide ordering is something I have on my TODO-list anyway, so maybe this will solve that problem too.