split types header apart

make it easier to extend
remove some unnecessary typedefs
add typedefs for vector in types.h
add #define for Vector

so it can be replaced
add ability to use own types.h

close #83
write out how much the data takes when written out iteself
header cleanups