fixed makefile to compile c and c++ files properly
Added player class to handle playback of files.

	A Player class was created that manages the playback of mp3 files.
	Playback is done in a separate thread such that the user can still
	use the buttons and display while music is played.
	The playback is done using code from
	http://hzqtc.github.io/2012/05/play-mp3-with-libmpg123-and-libao.html
Added scrolling support to list display.

	Strings that are longer that the display do now scroll
	horizontally if they are selected in RaspiLCD::printList
Fixed a bug in player and removed useless output in Jukeberrry.
Implemented a system of Screens used to modularize stuff displayed on the RaspiLCD.

	The JukeBerry class now holds a vector of Screen pointers. Screen is an abstract
	class which all Classes that display or do stuff must inherit from.
	Thus they must implement an update and draw method.
Moved text scrolling to LibraryBrowser.
Moved LCD_WriteFramebuffer to it's own method in RaspiLCD.

	All draw functions in raspiLCD write only to the buffer.
	The buffer is then flushed to the screen once every iteration
	in Jukeberry.
Added a Main Menu to the program and made Screens Jukeberry aware.

	All screens now hold a pointer to the Jukeberry object they are a part of.
	So they can send signals like switch screen or shutdown back.
	A Main Menu has been added that allows the user to select the desired function
	and quit the Program.
Completed main menu functionality
Added some Drawing functions and a title to the main menu.

	RaspiLCD can now draw single strings, lines, and string lists
	at a given position.
Added ContextMenuScreen.

	Added class ContextMenuScreen which implements a context menu and draws itself
	over another screen. The selected menu entry is saved to an int to which the class
	holds a pointer. This way no complicated callback stuff has to be implemented.
	The creating class just has to watch for the result value to change and then
	destroy the Menu again.
Now using std::unique_ptr to manage manually allocated resources.

	Player and LibraryBrowserScreen hold pointers to things that can be null sometimes,
	so no direct members can be used. Those pointers are now unique_ptrs to avoid memory
	leaks.
Added Playlist support.

	The Player class now holds a playlist and stuff can be added from LibraryBrowser
	via the Context Menu. In the new update() function Player checks if the current song has
	ended and starts the next one from the queue if any.
Improved the way Contextmenu return values are handeled in LibraryBrowser
Users can now navigate up to the main menu.

	Made sure paths are stored in canonical form in Library.
	Navigation back into the main menu is now possible.
	Going up in Contextmenu is also possible now.
Removed some unused code from RaspiLCD.

	Removed some old code from RaspiLCD and merged cFunctions and definitions.
Added PrintTitle to Screen.

	PrintTitle prints a nice title, i.e. a centered string and a
	divider line.