Merge pull request #128 from ahmedcharles/settings

Fix more crashes when the window is closed before the settings dialog.
Add new clang-format for new code.
Add package class and tests.

This will represent the relationships between triggers, aliases, etc.
Add package::empty() function.

Not the most important function, but useful and easy to support.
Add package::root() function.

This returns an iterator that will allow manipulating nodes at the root of
the tree, which do not have a parent.
Add package::begin/end() functions.

These will iterate over the entire tree, depth first.
Add package::push_back() and test accessing that value.
Increment the iterators, though only at the top level.
foo