Work on the reader

I added a few more things to the reader, a function to read double
quoted strings, a bunch of macros to get,unget and peek characters from
a generic stream (a CORD, a c_string or a FILE*).

I also added a file extra/read_table.h to put lookup tables used
in the reader in. I also added a lookup table which returns the
utf8 catagory of a bytes(if it's an ascii byte, continutation byte ,a
byte of an n length sequence, the null byte or an invalid byte)
and used this to write a function to validate a utf8 string.