Implemented buttons, added Text, added redundancy check to texture loader

Added a list of paths so we don't have to load 10,000 button textures in
using Text.write(Vector2f position, String text) will write text to the
screen. Don't use it inside of glBegin/glEnd