[Core]: Reworked core so it compiles

Moved the "core" components from C++-ish pseudocode to actual code. Also added
a .gitignore file.

Signed-off-by: Sebastian Lenartowicz <slenarto@uoguelph.ca>