split out r7rs library reading code into its own library