A bunch of changes

- #ifndef guards for header files
- add strings code
- fix some memory bugs
vm: implement more stuff