Lower addrspacecasts

These were introduced in LLVM 3.4 and were  introduced to remove abuse of bitcasts for converting pointers between address spaces.