Introduces the Textfield class.

This is a more basic, primary widget that can be used to draw more complex
ones.

By itself it does not expose much logic or rules; rather, it can be considered
a canvas to draw other widgets on. The old label has been updated to use this
as a component and instead inforce its own rules an interface upon the
Textfield.
Renames BorderPrototype to BorderStyle. Fixes errors with border destruction.

The new name more accuractly describes what this object is and does. In
addition, allocation and deallocation process for Borders has been improved; it
now properly removes old borders when going out of scope, as well as being able
to replace borders during runtime if and only if it is in a window that already
has allocated room for borders.

This, as a necessity, introduces the Border::set method. Some refactoring came
as a consequence, where the logic in a Border constructor was moved out into a
static method to be reused in the set method.
Changes Geometry and Anchor to be able to account for border offset.

As the border is an internal part of a window, special care has to be taken
during construction. The Widget is only exposed to the usable canvas, and this
data is registered in the object.