Lower addrspacecasts

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