Added playlist controls to page view.
Added templates of UI classes.
Another part of changes needed to create playlist controls.
Clear and shuffle buttons have now mapped functions and works.
Also some rework in playlist class - in selecting next/previous elements.
Minor change in methods naming.
Minor changes in MediaPlayer class - to handle null media element.
Some minor changes in playlist class to support loop
Introduction to refactoring in playlist services.
Part of responsibility has been removed from playlist class - now it is just a container for track list, allowed to add, remove etc items.

Playlist Service has been also cleaned up - now it is responsible for editing playlist and storing current one - this is the only point from playlist will be accessed (read only).
Rolled back previous changes.
Code cleanup - removed unused class - added TODO comments for future changes.

Some minor code clean up in playback controller.
Next part of responsibility has been removed from playlistService
Now relation between playlistService and playlistDetailsProvider has been reversed.

Also some minor changes in events handling.
Changes in obtaining details for playlist items.
Removed unnecessary events  now are callbacks instead.
Added session provider to details provider.
Minor code clean up changes.
Responsibility of updating playlist progressbar has been moved to playlist view controller.
Minor code clean up changes.
Track love state changing has been removed from playlist service to separated class.
Fix to incorrect property used to love/unlove track.
also some minor code clean up chnages.
Merge branch 'master' into PlaylistRefactoring

Conflicts:
	js/Core/ApplicationCore.js
	js/Player/PlaybackControlService.js
	js/Player/Playlist/PlaylistElementDetailsProvider.js
	js/Player/Playlist/PlaylistService.js
	js/UI/UIControllersFactory.js
	js/UICore/Playlist/PlaylistViewController.js
Rolled back incorrect merging changes.
Changes needed to correct work of playlist controls.
Also some code clean up.