Changed to/from-array back to imported functions, and wrote a bunch of tests

The array load/store functions work fine if they're imported, and they're
imported from the runtime system so I doubt its all that inefficent, so I'm
fine keeping it like this for now. I also added a from array offset function
with a limited bit of saftey to prevent out of bounds access, it works but its
still pretty unsafe. All the tests I've written so far pass, so it seems like alignment
really is working, which is really good