Added logical negation to Expression

Plus, refactored how Expression instances are created to support
optimizing the AST when possible.
Removed macros-based DSL documentation

This functionality is on temporary hold until I both get some feedback
from the community and have a better grasp on macros :-).
Rolled the scala version back to 2.10.0

Also updated the README.md to better convey what is meant by a criteria
being "Untyped."  Added ".cache" to .gitignore.