Make page layout lookup code more robust when handling invalid docs

This prevents a null exception being thrown if the requested paragraph
has no details about the associated page style. As a second fallback,
if no style called "Standard" exists, this will fall back to the first
available master-page defined in the ODT.
Clarified ImageController function name
Remove duplicate code in OdfCanvas for finding the master page element
Cope with non-cm image dimensions

Style-related operations are slowly being moved towards px as the
default unit to improve consistency. Standardising getContentSize to
work in px rather than cm provides better re-use of CSSUnits as well.
Ignore test-generated ODTs
Provide better fallback mechanisms for Formatting.getContentSize

getContentSize will now always return a valid page size, falling back
to it's own hardcoded format if no valid one is found for the document
Merge pull request #463 from peitschie/master-page-nullfix

Make page layout lookup code more robust when handling invalid docs
Schedule UI updates using requestAnimationFrame rather than setTimeout

Using requestAnimationFrame ensures the callback is executed prior to
the next redraw, eliminating undesirable & highly visible flickers for
UI updates.

Fixes issue #491.
Reduce UI flicker on FF as well

FF doesn't execute requestAnimationFrame requests before it's next
repaint, causing flickering when performing some types of updates
(e.g., recomputing Style2CSS). To workaround this, sometimes we force
animation callbacks to redraw ourselves at certain points.

This fixes issue #491 on Firefox
Merge pull request #496 from peitschie/ui-flicker

Reduce UI flicker when performing CSS updates
Do not display <text:bibliography-source/>
Merge pull request #500 from kossebau/hideTextBibliographySource

Do not display <text:bibliography-source/>
Add test for frame position.
Add a helper function to get the bounding rectangle for an ODF page.
Improve positioning of frame that relative to page.
Add type that is a union of ClientRect and a struct with the same members.
This makes is possible to use them interchangeably.
In older browsers, positioning is only allowed on whole pixels.
The positioning test should set the allowed error higher in such browsers.
Add more supported length units.
And add a bit of documentation.
Check for null return value for getBoundingClientRect.
Slight clarification of exception.
Add tests with draw:frame directly in office:text.
This requires position: relative in office|text to get the frame positioned properly.