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
implement @tschaub's suggestions for the LIKE function
implement @tschaub's suggestions for ieq and ineq
Until we know what we want to return, return undefined
Interface for GetFeatureInfo

When a source implements this interface, the layer renderer can
access the source to get feature info.
Implementing GetFeatureInfo for WMS
Add example, and use getFeatures in other examples

The new dedicated getfeatureinfo example shows how to combine
feature info from a WMS and a vector layer. The other examples
that previously used getFeatureInfo from vector layers now use
the more appropriate getFeatures.
Adding tests, and fixing an issue revealed by the tests
Support fillOpacity and strokeOpacity on shape symbolizers
Rename line symbolizer opacity to strokeOpacity for consistency

We already have strokeColor and strokeWidth.  Having strokeOpacity makes sense.
Support fillOpacity and strokeOpacity on polygon symbolizers
Optionally stroke and fill polygons (closes #475)

This also removes the unsupported width property from PolyStyle (closes #891).
Separate opacity in examples
Merge pull request #892 from tschaub/symbolizer-opacity

Separate fill and stroke opacity.
Provide a method for parsing any GeoJSON as an array of features
No array needed for a single event

Thanks @bartvde.
Merge pull request #894 from tschaub/more-geojson

Allowing all GeoJSON types to be read as an array of features.  This makes the parser more useful when used with a source that may not already be a feature collection.