fixed a few compiler warnings about vasprint, and shadowed variables
reorganized the header file and the source file in order to hide functions and structures that the end user doesn't need to worry about
Moved more non-user facing functions from the header into the source