Make GET_COMPONENT() macro more general

Now returns a GObject* instead of a GtkWidget*
Add basic sidebar with open/close functionality
Sidebar can be opened/closed/resized. State saved between sessions.
Implement selection between Index/Bookmarks sidebar contents
Rare Segfault Bugfix

Preconditions
 - "Button 3 Mapping" set to "Select Region".
 - "Hand Tool" selected.

Steps to reproduce:
 1. Right click (button 3) and hold, dragging the select region off the canvas.
 2. Without re-entering the canvas, "File"->"Annotate PDF", and select a
PDF to be the new background.
 3. Re-enter the canvas with the mouse pointer
 4. Segfault
Add PDF indexes + jumping to specific page on click
Index now loads/clears entires correctly, session independant
Code cleanup.
Generating png thumbnails
Merge branch 'bookmarks' into preview
Added thumbnails to sidebar; fixed up thumbnail generation; made thumbnail buttons functional. Thumbnails only update on major events currently.
Add simple bookmarks that can be created/deleted
Handle PDF index-jumping when user adds/deletes pages from Journal
Implement jump to the bookmark page
Merge branch 'gtk-builder'
Merge branch 'bookmarks'
Merge remote-tracking branch 'origin/search'

Conflicts:
	src/xo-callbacks.c
	src/xo-paint.c
	src/xournal.h
Renamed duplicate Glade file id's resulting from merge
Merge remote-tracking branch 'origin/preview'

Conflicts:
	src/xo-callbacks.c
	src/xo-callbacks.h
	src/xo-misc.c
Merge branch 'search'

Conflicts:
	src/xo-misc.c