Reader re-write

Re-write of the reader. Nesed, array, and primitive all working.
Re-write of tests.