Rewrite Reader functions.

Reader functions now handle the possibility of short reads that might
not be due to EOF conditions.
clean up, add Reader padding check