[Bookmarks] New bookmarks backend using JSON format

New format is compatible with Chromium's Bookmarks file.
It will support everything as the current backend +
 * multi-level bookmarks
 * bookmark description
 * bookmark keyword
 * remember expanded state (for folders)

NOTE: It is NOT yet complete. There is a LOT of work still needed.
Only bookmarks loading + saving and internal tree representation is
done.
[Json] Use built-in QJSonDocument class in Qt 5
[Bookmarks] Added BookmarksModel
[ModelTest] Added Qt ModelTest

Fixed to work with both Qt 4 & Qt 5
[QJson] Hack to check for Indent support

There is no library version available in header files, so this is
the only solution to fix building on Debian stable
[QJson] Check for QJson headers in /usr/include/qjson

Also hopefully fix the QJSON_HAVE_INDENT check
[Bookmarks] Added BookmarksTreeView class
[Bookmarks] BookmarksManager now uses new BookmarksTreeView
[Bookmarks] BookmarkItem: Added convenience functions isType
[Bookmarks] BookmarksManager now supports adding & removing bookmarks
[Bookmarks] Save bookmarks with AutoSaver

Also implement loading & saving expanded property of top-level
internal folders (toolbar, menu, unsorted).
[Bookmarks] Add bookmarks dialogs are now working
[Bookmarks] Bookmarks menu is now working
[EnhancedMenu] Rename signals to ctrlTriggerd and shiftTriggered
[Bookmarks] BookmarksSidebar is now working
[Bookmarks] BookmarksIcon & PopupWidget are now working
[Bookmarks] Removed BookmarksTree and renamed BookmarkIcon -> BookmarksIcon
[Bookmarks] Clean dead code in Bookmarks & TreeWidget
[Bookmarks] LocationCompleter now works

BookmarkItem: Added counting of bookmark's visits
[Bookmarks] Various smaller changes

BookmarksTreeView: Select & ensure visibility of newly added bookmark
BookmarksTools: Added function to open folder in tabs
LocationCompleterModel: Removed bookmarks bits in createQuery
QupZilla: loadAddress now opens new tab if current tab is pinned