separated the hash table from compiler.c
reparated symbol table specific operations from hash_table.c
separated more parts from compiler.c

split off struct fat_pointer into fat_pointer.h
split off keyword initialisers into keywords.c
split off struct symbol_entry into symbol_entry.h
split off token enum into token_id.h

simplified the symbol_table logic
simplified has_table logic
add .gitignore