Implement function pointers as a view

There's now a clean separation between the implementation of functions, and the implementation of the rest of C (essentially pointer arithmetic + reading to and writing from buffers).  Eventually only the function portion should depend on libffi.