Rewrote KernelTest to test both device memory and host memory for CPU + GPU

This tests the behavior of reading from mapped host memory pointers and
read()ing directly from device memory