Ajaxify files list for files + trashbin + public page

Files app:
    
    - removed file list template, now rendering list from JSON response
    - FileList.addFile/addDir is now FileList.add() and takes a JS map with all required
      arguments instead of having a long number of function arguments
    - added unit tests for many FileList operations
    - fixed newfile.php, newfolder.php and rename.php to return the file's
      full JSON on success
    - removed obsolete/unused undo code
    - removed download_url / loading options, now using
      Files.getDownloadUrl() for that
    - server side now uses Helper::getFileInfo() to prepare file info response
    - preview URLs are generated only on the client side now (reduces code paths to maintain)

Breadcrumbs are now JS only:
    
    - Added BreadCrumb class to handle breadcrumb rendering and events
    - Added unit test for BreadCrumb class
    - Moved all relevant JS functions to the BreadCrumb class
    
Public page now uses ajax to load the file list (fixes #4931):
    
    - Added Helper class in sharing app to make it easier to authenticate
      and retrieve the file's real path
    - Added ajax/list.php to retrieve the file list
    - Fixed FileActions and FileList to work with the ajax list

Bonus:

    - Lots of JS unit tests for the file list !