Separate type size/alignment logic out into LLVM.General.DataLayout, add documentation, and remove gratuitous exports