Add interfaces to better split the loading logic, refactor to accommodate
changes

Fixed bad practice, move tmx-specific constants to the tmx loader.

Rename some methods for the better, fix "dependencies" spelling error.

Add javadocs.