Return whole file if range request cannot be granted due to encryption

Whenenver range headers are set and encryption is enabled, it is not
possible to automatically fseek() to the proper position.

To avoid returning corrupt/invalid data or causing a decryption error,
the range headers are stripped so that the SabreDAV code in httpGet()
returns the whole file.

Backport of cc8c1d8e0776bda7f4c7c28e11984144a4861df3 from master
add unit test for #8325
use S3Client::encodeKey(), fixes #8325
7.0.2 RC1
Trigger events when app-settings visibility changes
Use global apps slide toggle logic

Remove local app settings slide logic and make it use the global one
triggered by the "data-apps-slide-toggle" attribute.
Fix default quota settings field

The default quota settings field is initially hidden which makes it
impossible for singleSelect() to make its width measurements.

This fix uses the app navigation slide "show" event to defer the
singleSelect() initialization on the default quota field.

Refactored setQuota() into UserList._updateQuota().
Refactored duplicate event handler code into UserList.onQuotaSelect().
replace spaces with tabs in apps.js
make singleselect check for gravity wish, and make it south for default quota
it does not affect gravity on planet earth, but only for tipsy
Do not close container/slider when clicking on single select field
Fix share dropdown when links are not allowed

When links are not allowed, the email field does not exist and
autocomplete returns null. This causes Javascript errors.

The fix prevents entering the bogus block when links aren't allowed, as
it doesn't make sense to enter it in such cases anyway.

Backport of 98d06094e70d657907b139431624740acde3bbd9 from master
Merge branch 'stable7-upstream' into stable7-rotdrop