MDL-28666 Extends repository to support references

1. Allow repository to create references to external contents
2. Extends files API to handle file references
3. Generic file caching
4. Backup/restore file references
5. Download external contents if repository uninstalled
6. Allow filepicker to display iframe
7. PHPUnit test suits
MDL-31901: brushing the filepicker code

- use the same function for displaying request result for list/search/login/logout commands since sometimes we can not predict what kind of result is going to be returned
- prevent default behaviour for links, so ### does not appear in URL
- use flag issearchresult as received in the response from repository because we can't guess it right sometimes
- do not make excessive AJAX request when user switches to list view
MDL-31901: Introducing renderers for filepicker:

- create repository renderer, implement functions for returning HTML templates used in filepicker
- let filepicker use HTML from templates
- move CSS for filemanager and filepicker to the separate css file in base theme
- use only YUI3 in filepicker (get rid of YUI2)
- add button for 'View details' in filepicker (though this view mode is still not ready)
MDL-31901: Filepicker: Moved HTML for loginform into renderer
MDL-31901: Modifying filepicker to use renderers

- fixed some small errors and made cosmetic changes to the code
- added 'loading' icon when selecting a file
- finished population of login form, added support for radio elements there
MDL-32083: Filepicker tree view should display folders starting from top

 - path bar is not displayed in tree view mode
 - display (and load) hierarchy of folders above the current - take it from path and load siblings
 - make sure the current folder is remembered when navigating between folders in tree view so it remains when switching to other view mode
 - fix couple of small bugs caused by previous changes in MDL-31901
MDL-14636: Support table view in Filepicker, provide more info about files

- Added table view in Filepicker where for each file we show Name, Last modified, Size and Type. Sortable by column
- Preprocess list of files returned from repositories to include formatted size, dates, type and also add filetype icon
- Make sure that local repositories (coursefiles, filesystem, local, recent, user) return information about file size, datemodified, datecreated, author, license
MDL-31901: Changing interface of file picker, use renderers:

- Filepicker window is now resizable and draggable;
- filepicker&renderer: removed id substitution from renderer, replaced it with classes (better readability);
- filepicker: allowed tree and table view for search results;
- filepicker: fixed small bug with displaying external link checkbox
- filepicker: display additional information about file in select window, repository returns more formatted information
MDL-31901: Simple loading of the next page, migrating to YUI 3.5.0

- instead of using paging bar and navigating between pages, there is a link 'more' in the bottom of the list that loads the files from the next page and adds them to the bottom of the list;
- DataTable is updated to YUI 3.5.0, sorting is done properly
MDL-32473,MDL-32471: Lazy loading of next page and image thumbnails when scrolling
MDL-31901: show shorttile instead of title where applicable
MDL-31901: user renderer for filemanager, decrease html generation in filemanager.js and dndupload.js
MDL-31901: moved filepicker html to files/renderer.php, pass templates once per page
MDL-31901: Allow FileManager to re-use FilePicker JS code for view modes:

- when loading core_filepicker we extend the Node element with functions necessary to display files list in different view modes;
- repository/filepicker.js is changed to use those functions;
- FileManager now has three different view modes (icon view, tree view and table view), JS code is re-used from FilePicker;
- files in FileManager no longer have context menu, they have one popup Widget with different actions instead;
- Added more templates for JS code to FileManager, use similar CSS class names as FilePicker;
- lib/filelib.php : fixed double slashes in path, return more data about files;
- lib/form/filemanager.php : pass information to FileManager about available licenses and default author;
- repository/draftfiles_ajax.php : return information about directory tree for file moving UI in FileManager, return formatted information;
- repository/lib.php : function repository::prepare_listing() now can work also with draftarea files listing;
MDL-31901: Change the UI in filepicker CSS rendered and images
MDL-31901: removed accidentally commited testing code
MDL-31901: FileManager, added image for accessing right-click action
MDL-31901: FileManager uses more YUI3 windows and more renderers

- Add folder dialog in FileManager now uses YUI3 and renderer;
- Fixed bug with remembering current folder in Tree view;
- Display error messages in FileManager using YUI3 and not using 'alert'
MDL-31901: Updating/moving files in FileManager

- added new functions to the backend (repository/draftfiles_ajax.php) to allow changing of file name, location, license and author in one request
- enabled changing file properties using JS UI (lib/form/filemanager.js)
MDL-31901: Highlighting main file in FileManager