[lib][heap] make the heap 64bit safe, only put magic value if needed
[endian] clean up endian.h

use builtin defines from gcc to set the endian, instead of
calling each arch out separately.
[arch] move arch/ops.h to arch/arch_ops.h and clean up header
[linker scripts] align all the special sections on 8 bytes

This satisfies 64bit architectures.
[include] make the REG* macros cast through uintptr_t

This makes 64bit arches happy if the passed in address
constant is 32bits.
[make] also generate lk.elf.sym.sorted