Page size calculation based on real page height

This is fix for https://github.com/owncloud/core/issues/10060
Instead of hard coding page size as 20 items, we check real page height, and divide by 50 (height of one row).
This will allow to load fewer items on small screens and enough items on large screens (4k, portrait orientation, etc.).
Also checking page height on every load to respond on browser window resizing,
Use the cached fileinfo to get creatable permissions
Unset the cached active user when using a different session object
Add unit test
Allow specifying protocol in ext storage OC config

Allow specifying a protocol in the host field when mounting another
ownCloud instance. Note that this was already possible with the WebDAV
config but this bug made it inconsistent.
Add darwin to if block

Otherwise it would fall into the 'win' else block because strpos($os, 'win') does also match 'darwin' what is the `php_uname` for OS X.
Use `rawurlencode` since this seems to be expected by cURL

Fixes https://github.com/owncloud/core/pull/11501#issuecomment-58794405
Refactor MailSettings controller

- Do not store the password (fixes https://github.com/owncloud/core/issues/11385)
- Refactor to AppFramework
- Add unit tests

Conflicts:
	settings/admin/controller.php
fixing typos
[tx-robot] updated from transifex
Use body element when animating scroll in public page

In the public page the scroll container is the window instead of a div.
The $(window) object doesn't support animating the scroll property, so
the $('body') element is used instead.
Merge pull request #11590 from owncloud/publiclinkscrollanimatefix

Use body element when animating scroll in public page
Merge pull request #11548 from owncloud/extstorage-ocfields

Allow specifying protocol in ext storage OC config
Merge pull request #11541 from owncloud/usersession-activeuser-setsession

Unset the cached active user when using a different session object
Use this.$el instead of the absolute selector
Merge pull request #11538 from owncloud/webdav-creatable-info

Use the cached fileinfo to get creatable permissions
strip whitespace from the beginning and end of the display name to avoid empty display names
Use function call for FileList.pageSize
this.$el is not the same as $('#app-content')

That is why we use `this.$el.parent()` instead
Stub for pageSize, because now it is dynamically calculated