Make new Buildable interface so Ghost no longer implements Tower
Rename hover over to rollover

Previously this would have caused ambiguity due to there being a
rollover tower (on control panel) and hover over tower (on map), but
due to the addition of the Buildable interface, this doesn't exist any
more.

Also reorder some of the related variables and functions.
Rename method checkIfRolledOver() to isRollover()
Stop CircleTower using the path bounds so it doesn't need to be passed around
Remove inherited methods from interfaces
Use Java7 style type inference to reduce line breaks
Rename a Tower method
Fix RandomComparator so that it works correctly