fixes build error on windows

removes unistd.h include; it wasn't being used anyway
adds snprintf macro for windows
don't append empty strings, don't break short substrings
create Type_Repeat for repeat expr's
clean up a bit in hash.c
pretty print spaces around colons