Reduce dependencies in projects.
Remove the data store dependencies.
Remove extra includes.
Merge pull request #163 from lowjoel/reduce-datastore-dependencies

Remove the data store dependencies.
Merge pull request #164 from lowjoel/reduce-dependencies

Reduce dependencies
Try to hide private APIs.
Redesign the data store.

 - Transaction and DataStore classes are now facades for an internal transaction and datastore class. The internal classes are tightly coupled together because the Transaction is actually a RAII mutator for datastore
 - First few steps to move all the logic for manipulating the XML DOM tree into the operations. The DataStore is basically a container for the XML document, and a collection of transactions (which are in turn a collection of operations)
 - Then the operations have a pure virtual execute method, taking the DOM to manipulate.

This should separate the component into manageable bits. The Transaction and DataStore forms one entity, and the operations just maps over the existing XML DOM.

(sorry, unit tests have not been refactored yet.)
Move all the operation logic from the internal data store to the operation classes.
Reimplemented the functionality in the new classes.
Fix the tests.
Fix all tests.
Copy ctor and assignment of transactions are not allowed.
Roll back transactions if they go out of scope but was not committed.
Rename InternalDataStore to Internal::DataStore.
Fix lints.
Replace Utils::Option with boost::optional. Resolves #168.
Properly exclude boost from code coverage analysis.
Forgot to commit.
Set the task panel to refresh after task is edited.
Now displays priority in task panel.