Don't call FML's DimensionChanged event when teleported to the same map
Added an API and refactored a lot of the code. Closes #7