Cleaned up AST.h.

* Added some regions make the code easier to work with.
* Moved related things together.
Switched from llvm::OwningPtr to std::unique_ptr since LLVM removed it.