Animations: Refactor the way layers are removed to enforce the limit

- Thin layer times by time-interval instead of by index.
  For set of times with varying intervals (think past & future times),
  this provides a more evenly spaced animation, vs removing by index
Lightning collection: fix invalid model reference

- Was referencing the `Lightning` model using the same
  variable name as the `Lightning` collection.
AerisApiCollection: Fix duplicate models when fetching with { remove: false }

- See https://github.com/jashkenas/backbone/issues/3147#issuecomment-43108388
  and http://jsfiddle.net/tT2D9/3/
Params: do not require to/from to be date objects

- Allows the use of 'today', 'tomorrow', etc,
  which are valid Aeris API query values
Fire model: use from=today param by default

- The Fire endpoint will return models with the same report id,
  when the fire attributes change over time. This is the intended behavior
  of the AerisApi, but it causes problems with Backbone (which expects
  unique ids from the server)
  The fire models are only updated once per day, so requesting models only
  from today will prevent duplicate ids.
AnimSync example: next/prev buttons change by 15 min
MarkerCollection: Do not add child markers to map

- Saves us some processing on child marker strategies

- might be a little dangerous, but hasn't broken anything
  yet...
Lightning: set unique id

- Lightning endpoint does not provide id,
  which was causing collection.fetch() to add duplicate
  models
Lightning: change default limit to 100

- to improve performance
minor: cleanup and scoped variable name changes
SubsetCollection performance improvements

- Takes a leaner approach to binding to the source collection,
  instead of reseting the subset collection whenever the source collection
  changes.