Expression parsing

Instead of using a `Function` constructor to evaluate expressions, we can parse a subset of JavaScript expressions into `ol.expr.Expression` subclasses.  These can be evaluated with a provided scope and serialized in different formats.

This replaces all the existing `ol.filter.Filter` functionality.