Assorted fixes

* cmake CMP0054 and CMP0045
* aarch64 build
* portable code options in PCH cmake
* some of gcc 4.9 warnings
I don't think that makes it worthy of ignoring in 2.4. 2.4 shouldn't depend on what's happening in master. If it bothers you that much, you can put it in `.git/info/exclude`.