Added event bus implementation.
Removed EditSessionFactory in favor of event-based system.
(Breaking) Moved some packages around.

Most of the changes should not break *most* WorldEdit-using plugins,
but implementations of WorldEdit are broken by this change.
Split up source files into several source directories.
Added legacy DataException to create binary compatibility.
Removed foundation.* package.