WebODF viewer is now part of ViewerJS, so remove outdated README-viewer.odt
Merge pull request #592 from kossebau/removeOutdatedViewerDoc

WebODF viewer is now part of ViewerJS, so remove outdated README-viewer.odt
Move bitrotted programs for iOS, Playbook and Qt to attic/
Merge pull request #583 from kossebau/moveBitrottedAppsToAttic

Move bitrotted programs for iOS, Playbook and Qt to attic/
Simplify CSS rules for cursor and composer element

The cursor node is now completely hidden when not in use, so there is no
need to touch the height or width properties of the composer or cursor.

In addition, the new overlay caret no longer requires the composer to be
displayed as an inline-block in order to function.
Provide a better caret position fallback when no visible rects are found

In the specific situation where there are no visible rectangles nearby
from which to calculate the caret position and size, the cursor node itself
will be made visible with some hidden internal text as a substitute.

This ensures the caret is correctly aligned in empty paragraphs that are
not left-aligned, or in an area surround by non-visible rects such as near
multiple annotations.
Remove another unnecessary inline-block

The cursor element is now only visible when it contains either text
or the caret-size helper. In addition, there are no longer any fixed
widths being applied to the cursor element, so the inline-block is not
necessary.
Merge pull request #611 from peitschie/cursor-visible

Provide a better caret position fallback when no visible rects are found
Only store the start node in DomUtils.getNodesInRange if within range

Fixes a regression introduced in 8b742ee. The currentNode was being
incorrectly added to the results array before it was checked to see if
it was contained inside the supplied range.
Merge pull request #612 from peitschie/range-fixup

Only store the start node in DomUtils.getNodesInRange if within range
Fix property removedProperties of ops.OdtDocument.signalMetadataUpdated

was passed as removedProperties.attributes: !string
instead of    removedProperties: !Array.<!string>

also
* reuse initial spec variable
* only deep clone opspec.setProperties, as removedProperties is cloned by
  opspec.removedProperties.attributes.split(',') already
Init removedPropertiesArray to null, is understood by OdfContainer.setMetadata
Add gui.MetadataController
Use filter/join methods of Array for more elegant code
explain unfilteredTagName parameter

fixup Add gui.MetadataController
fix typing of opspec

fixup Fix property removedProperties of ops.OdtDocument.signalMetadataUpdated