Expression parsing

Instead of using a Function constructor to evaluate expressions, we can parse a subset of JavaScript expressions into `ol.expression.Expression` subclasses.  These can be evaluated with a provided scope and serialized in different formats.

This same functionality can replace all of the `ol.filter.Filter` functionality.  I'll hold off on doing that until we have some discussion about it.