Various changes in Readium SDK (and some associated changes in RDServices)

This checkin contains three major changes:
- First, it creates the new ContentFilter::OperatingMode enum class. Through this enumeration,
  each subclass of ContentFilter will be able to specify its operating mode, or, more specifically,
  if it supports byte ranges, if it requires full content, or it if is just a standard ContentFilter.
- I also modified how FilterContext objects are created by the ContentFilter class. From now on,
  the MakeFilterContext() method will check if a ContentFilter class that supports byte ranges is
  returning a subclass of RangeFilterContext as the result. If not, an exception will be thrown.
  From now on, subclasses of ContentFilter should override InnerMakeFilterContext() in order to
  generate a FilterContext object for themselves.
- Finally, a piece of work still in progress. We are in the middle of rearchitecting how the current
  code decides if it should follow the byte range code path or not. There is an initial set of changes
  around that in this checkin, but this should be majorly reviewed (and modified) in subsequent
  checkins.