Add parser for OGC Filter 1.0 and 1.1 (read/write)

This work is based on the ol.expr package by @tschaub.
It adds a few named expression functions to that package:

 * INTERSECTS, CONTAINS, DWITHIN, WITHIN (no client-side implementation as yet)
 * LIKE (like comparison with wildcard, singleChar and escapeChar)
 * IEQ (case-insensitive equality)
 * INEQ (case-insensitive non-equality)

It also adds a few extra parameters to the existing EXTENT function to be able
to deserialize and serialize all info (i.e. projection and property name).

Some changes were needed for the GML parser as well:

 * createGeometry function needed to be public
 * when parsing Box (GML2) and Envelope (GML3) also parse the srsName
 * fix up writing for Box and Envelope now that bounds is an array

Also added createDocumentFragment function to the XML parser. Implementation
is similar to OpenLayers 2.

Some addtional notes on the implementation:

 * PropertyIsBetween was implemented as an ol.expr.Logical with operator
   ol.expr.LogicalOp.AND and two ol.expr.Comparison instances with operator
   ol.expr.ComparisonOp.GTE and ol.expr.ComparisonOp.LTE
 * In OGC Filter And and Or can contain more than 2 sub filters, so this
   is translated into a hierarchy of ol.expr.Logical
address most of @tschaub's review comments, use dot notation where possible still needs to be done, and I have some questions on the _expression reader still
more dot notation
make filterMap_ static as proposed by @tschaub
Upgrade Font Awesome to version 3.2.1
Add zoom to extent control
Add navigation controls example
Rotate to north for custom controls example
No need to impl setMap in ZoomToExtent control
Add basic ol.animation api doc
Allow VectorSource to load and parse data

This adds url, data and parser options to the source, and makes
EPSG:4326 the default projection. It also adds a prepareFeatures
method, which is used to load/parse data once the target
projection is known.
Removing unused methods and changing getFeaturesObjectForExtent

With this change, getFeaturesObjectForExtent may return null if
the source does not have data loaded for the provided extent.
A callback can be passed to getFeaturesObjectForExtent to get
notified when the requested data is available.
Updating examples to use the new API
Addressing @elemoine's review comments
Merge pull request #870 from ahocevar/vector-api

Give VectorSource the ability to load and parse data
Add and remove features with meaningful events

This adds a removeFeatures method, and makes the CHANGE event
more useful by adding information about changed features and
extent.
New pruneTileRange method

This also adds an assert that cache values are an instance of
ol.Tile in expireCache, instead of doing a type cast. Later we
will want to enforce the ol.Tile type by overriding the set
method.
Expire tile by range and listen to changes

Instead of just listening for the first change, we now listen
for all changes, and expire tiles by tile range. The outcome is
that the vector layer's addFeatures and removeFeatures methods
now show instant results on the rendered map.
Merge pull request #859 from elemoine/zoomtoextent

Add a ZoomToExtent control
Merge pull request #868 from fredj/apidoc

Add basic ol.animation api doc