Dictionary.c was split in to separate files

Just to make things more readable and scalable. Also added optimization flags.