Strategy: require `strategy` option to be a constructor

- no longer accepts AMD path

CONS:
- If a subclass does not use the same strategy as it's parent,
  this could result in loading strategy modules which are never used

PROS:
- Simplifies logic for setting and resetting strategies
- Simplifies interactions with with MapObject views (no longer
  need to assume asynchronous view creation)
Refactor TileAnimation spec to use MockFactory for MockLayer
Refactor Animation objects

BREAKING CHANGE

- Use base layers as a "master" controller
  for all other layer frames.
  So instead of setting the opacity on the animation,
  we can simply set the layer's opacity.
  We can also use layer.setMap(null) to remove it.

This better decouples the Animation from the layer. Previously,
if a layer was being animated, the client could not manipulate
the base layer without messing up the animation. Now, the client
can use the base layer the same as before it was animated, and
all animation frames will follow suit.
TileAnimation: raise default limit to 20
Remove MapExtObj#requestView

- Strategy creation is no longer asynchronous,
  so this method is no longer usefule
Fix leaflet tests (leaking scope issues, I think)
Animation example: add comments, and code cleanup
AnimSync Example: Upadte to work with refactored Animation objects
Merge branch 'master' into dev
Update version to 0.6.0
bower/npm update