Gitignore and README.
Added wrapper class to handle ncurses window creation and destruction.

This achieves two things:
* All memebers can now be initialized through init lists
* No longer need to explicitly handle curses construction/destruction in Widget
constructor and destructor. This responsibility has been moved to the Window
class.
Implemented methods in Geometry.
Written add_children, redraw and refresh for Widget.
Implemented Label class constructors.

Label is a special case of widget designed for displaying a single piece of
text. It can be positioned as a Widget as all configuration options are
forwarded to the base Widget.
Changed Application global config options to return reference.

This allows configuration setting chaining, such as
app = Application().enable_keypad().enable_echo()
Comments!
Changed inheritance-ready properties from Widget.

This is to prepare for the new composition-based object model.
Added Widget::write and associated methods.

This is a simple write-string-to-screen method.
Modified Label to use composition rather than inheritance.
Restricted the size-capabilities of Label.

It now has to follow a size defined by its input string. It is no longer
possible to specify a different size than what the object itself calculates.

For cases where such features are needed, more classes will be added later.
Removed Child feature from Widget.
Added get_widget() to Label. Removed Label destructor.
Added missing Widget constructor.
Implemented free helper functions.
Changed all Label's constructors. Changed parameter order system.

The change in parameter order is simply always expecting the parent widget (if
any) first. This way we can avoid having to deal with complex template
inspections.

Implemented proper overloaded and var-templated constructors for Label.
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.