Fix indentation in CMakeLists.txt
Improve additional gcc flags, set std to gnu++11

add_definitions() is a better way to set custom flags.
Replace -std=c++0x with gnu++11 (the gcc manpage doesn't mention
c++0x anymore).
Add convenience Makefile
Clean up project root directory

Move sources to src/.
Run tree through astyle

Run the entire tree through astyle with the following args:

--style=kr --suffix=none --pad-oper --pad-header --unpad-paren
--align-reference=name --align-pointer=name --convert-tabs
--indent=spaces=4

A couple of changes (such as blowing up switch statements and one-line
header functions) were manually rolled back before committing.
Keep an empty line between functions
Further style cosmetics

These empty lines are superfluous now that functions keep the opening
'{' on its own line.
Abbreviate short switch section

This is easier to read as one-liners.
New feature: negated filtering

Unfortunately, regex don't make negative matching (show me all except
the matching packages) easy. However, this is often interesting for
package searches. Work around regex limitations by introducing a custom
negated filtering syntax: /g!:base will keep all packages that do _not_
match 'base' in the group field.
Update to libalpm 4.1 API
Check system() return values

system() is declared with warn_unused_result, so we actually need to use
its return value to avoid the warning.
Increment the version to 2

Instead of following MAJOR.MINOR, we will just use a single version
number for now.
Remove MAJOR/MINOR version code
Begin moving ui code to CursesUi
Move focus functions to CursesUi
Pass package lists to enable_curses()

This feels a little strange, maybe the curses frames should not be
deleted / reconstructed whenever enable or disable is called.
Move resize handling to CursesUi
Move update_display to CursesUi
Clean up program.h

Remove moved functions, clean up includes.
Set internal CursesUi variables private