Add static lib for parts that should be tested

Add static library for the parts of the application that should be tested
by unit, integration or end-to-end test.

Move Snippet struct to this new library.
Override less than operator for Snippet

Add a operator<() to Snippet struct.
Unit test for Snippet struct

Add an unit test for the Snippet struct.
Add test methods for JSON translation methods in Snippet
New class JsonSnippetTranslator

Add a class to translate Snippets from and to JSON.
Move the static translation methods from the Snippet struct to this new
class.
New class SnippetCollection

Add a new class which represents a collection of snippets including
change notification.
Fix SnippetCollectionTest
Add remove() method to SnippetCollection
Fix build by specifying new dependencies for app
Extend JsonSnippetTranslator and SnippetCollection

class JsonSnippetTranslator now works on whole QJsonDocuments instead with
single snippet to JSON conversions.

Added several new methods to SnippetCollection class.
New class JsonSnippetFile

Add new class JsonSnippetFile which offers static methods to load/save
snippet files.
Replace SnippetRepository with SnippetCollection

Replace SnippetRepository with SnippetCollection and JsonSnippetFile.
Remove method setContent() from Snippet struct
Check validity of JSON document in JsonSnippetTranslator

Check validity of the passed JSON document before processing it in
JsonSnippetTranslator.
Extend unit tests for SnippetCollection
Moved textUnderCursor()

Moved textUnderCursor() which returns the current completion prefix from
SnippetCompleter to MarkdownEditor class.
Remove dependency on QPlainTextEdit

Remove SnippetCompleter dependency on QPlainTextEdit. Instead the selected
snippet is signalled to the MarkdownEditor which then replaces the trigger
with the snippet content.
Remove popupOffset from SnippetCompleter

The left offset is instead calculated by MarkdownEditor based
on the width of the line number area.
Add operator==() to Snippet struct
New class SnippetListModel

The new class is a QAbstractListModel-implementation for the collection of
snippets.