Classy stuff.

In this commit, I'm going to be doing work with reflection. Nothing too
fancy, but it seems this is the only way to dynamically cast changes to
specific types. We're also going to take advantage of the fact that the
Change class stores action data and directly reverse the change from an
object representing the change itself.

In other news, work on a better SmartLogging class has begun. We want
an interface here, not static methods. This way developers can support
custom behaviour for other stuff.

DateComparison now uses absolute values so we don't get odd results for
times. Also, I'm going to use my own Vectors. I need to work on
switching from Bukkit's vector classes and to my own. This way we can
support a broader range of internal functions. For example, a
RemoteZeroVector can support yaw and pitch as well, seemingly
"pointing" at other vectors. Later, we can use this to find a Vector at
a specified distance (targeting air blocks?), or to find out which
direction another Vector is in. I've also got school coming up, so
maybe I can learn some more math to help in *that* department.

Well, that's it for now, I guess.