Refactor read-ast to return a map

This way we can save the calculated sp/cp for future use (like
locating a class's source file