ECQL encoding/decoding consistency (GEOT-4783)

commit db9a52c0454680571047e05662c0831f22e3ea2e
Author: Jody Garnett <jody.garnett@gmail.com>
Date:   Wed Apr 30 23:48:15 2014 +1000

    Update in response to feedback.

commit a4ed6306f8302407b415373380b5ab3184bbbf71
Author: Jody Garnett <jody.garnett@gmail.com>
Date:   Sat Apr 26 10:42:49 2014 +1000

    Brackets are only required around AND and OR operators if they are nested

commit 1cdd63447c784396f8ee35b71795181c0a59f40e
Author: Jody Garnett <jody.garnett@gmail.com>
Date:   Fri Apr 25 18:05:01 2014 +1000

    ECQL encoding/decoding consistency (GEOT-4783)
Remove GeoTools 2.2 Filter and Expression interfaces

Delete GeoTools 2.2 Filter interfaces
Delete GeoTools 2.2 Expression Interfaces: only way to be sure we won't have a class cast exception.
Cleanup deprecated Expression interfaces and unused classes
Remove GeoTools Expression getType() and getValue( feature ) methods
Remove remaining methods that assume GeoTools Expression - this required the addition of Filters.getExpressionType(expression) utility method.
Filter implementations no longer need factory for ant,or,not.
Remove GeoTools FilterFactory and FilterFactoryFinder.
Remove FilterVisitor and FilterVisitor2: It is time to move on
Remove Filter.filterType
Safe cast to geotools expression, will return null if not possible.
Initial Filter cleanup of and, or and not methods.