Refactor and simplify target ABI system.

The big changes in abi-x86-64.cpp are an UNTESTED attempt to clean
things up.
The simplifications may be too daring, but I hope LLVM gets it right
without too much help from our side.