Added null check to prevent nullpointer
Made unenchant remove book enchants.
Prevent modifying map while accessing at the same time
Use keySet instead of entrySet, remove normal enchants from books too
General cleanup