Introduces the clear()-option to the Widget class.

This simply clears the screen the Widget manages.
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.
Introduces the Format (family) of classes.

The "family" is implemented through the templated Format class. This take the
same bitmask as the ncurses attron and provides scoped reset for the given
window.
Changed naming scheme for Application options. Introduces cursor option.
New features for drawing on the Widget canvas.

These are parts of the interface that allows arbitrary content to be drawn on
the canvas. The Widget object itself handles absolute positions on screen, and
provides a logical canvas to work on.
Introduces the Button class.

This is an object that associates some actions with a label. Actions include
appearance change when focus are toggled as well as a function called whenever
the button is triggered.

This requires Label::redraw to also call write on the underlying Textfield; it
can never be sure that nothing has changed.