Various improvements to compilers.

Added compileArray method to Compiler interface.
Created the abstract class Abstract compiler that implements the compileArray method
Fixed UrlCompiler issues with FieldExpression
Change the meaning of not in compilers and building. Now not always build a tree expression,
and it is converted to a BooleanExpression by the lucene compiler.