User interface with custom Component class

This commit adds the possibility of creating a user interface very
similar to the AWT/Swing one. Not necessarily visually similar, but by
how it is set up. Should be very easy to use and extend.
Basically, there is a main class for every GUI thing called Component.
That class offers many customization methods already, and it handles
event business (currently only mouse events of any type are supported,
keyboard events will come soon). Then, there's also a class called
"Container", which is a Component that can contain (hence the name)
other components. It renders and updates them all (at least that's what
implementations of it should do).
There are also 2 other new classes. They are called "Button" and "Label"
and are basic components to get you started. Their function should be
self-explanatory.
The good thing is that Screen now extends Container, which makes it
really easy to use it as a GUI provider (and that's the reason of
existence for all that stuff, isn't it?).

Besides the new GUI functionalities, there were a few other changes:
* The functions in Vector were made more safe against "null" arguments.
* The way mouse buttons are checked has changed to make working with
them easier and more reliable.
* In order to provide compatibility with the GUI, "lineFontRenderer"
(Screen) was replaced by the one provided via Component, "fontRenderer".
* The Action class was added. While this is intended for the GUI, it can
also be used otherwise.