Remove Automatic Evaluation

- [X] Stop auto eval for Xor
- [X] Stop auto eval for ITE
- [x] Stop auto eval for Not
- [X] to_nnf
- [x] is_nnf
- [X] is_literal for predicates
- [x] Tests
- [x] Documentation
You should also add a basic test that it remains unevaluated, like `assert isinstance(Xor(A, B), Xor)`.