workaround for libc++ not working on linux
add include guards
split out definitions in object.h into object.cpp
enrich parser test cases
keep track of the changes in object.h, and contains some bugfixes
update .gitignore