Add abstract and direct mapped node caches + test
.gitignore: ignore generated CppUnit executable