Restructure project

create new app project for building the app, new test project for building tests and the src project now contains the common files.
Update .gitignore
update to Grantlee 1.0
remove diff tab in RevsView
remove smartbrowse labels
a primitive optional<T> implementation

optional<T> can optionally store data. You can query it, if data is available and retrieve the data from it. C++14 will include it.
add Maybe<T> which acts as sort of a Monad to return data that maybe invalid

you can return a Maybe and then the caller can test, whether you returned valid data.
change RevDesc from QTextBrowser to QWebView
add tools/tools.h as include header for all headers in src/tools
add getDiff(SCRef sha) to get diff for a commit
add code for analyzing git diffs
add diff analysis to context of commit description
add tree diff to desc.html, the commit description template
FIX remove dangling CSS attributes and move them to the right place
use different foreground/background color for desc.html
skeleton for unit tests for the Diff Analayzer
use QRegularExpression instead of QRegExp in FileDiff.cpp
FIX also parse hunk headers where hunk size is missing

"@@ +1,4 -3 @@" is also a valid header. If the size is missing, it defaults to 1.
convert tabs to spaces for desc.html
detect renames in commit diffs