Frame size: work around Mobile Safari ignoring frame dimensions
Rename PageSize --> ViewportSize
ViewportSize: confirm that elements off-screen are ignored
ViewportSize cleanup
ViewportSize convert(), toString()
Changelog updates
ViewportSize API docs
INTEGRATE: ViewportSize descriptor

* dev:
  ViewportSize API docs
  Changelog updates
  ViewportSize convert(), toString()
  ViewportSize cleanup
  ViewportSize: confirm that elements off-screen are ignored
  Rename PageSize --> ViewportSize
  Frame size: work around Mobile Safari ignoring frame dimensions
  Page size --> frame size semantics. Doesn't work on Mobile Safari
  Page height accounts for scrollbar
  Page width accounts for scrollbar
  Test Windows versions of Firefox and Chrome
  Page size accounts for margin, border, padding in standards mode
  Basic page size works in standards mode
  QFrame creates empty frames in standards mode on IE 8
  Spike demonstrates IE 8 quirks mode issue with iframes
  Page size ignores box model
  Page height accounts for body margin
  Page width accounts for body margin
  Page size accounts for body border
  Page size accounts for body padding
  Initial page height calculation
  Initial page width calculation
  __reset.js exports width and height constants
  Changelog updates
  API summary tweak
QViewport class
QFrame.viewport()
Changelog updates
QViewport API documentation
INTEGRATE: QFrame.viewport() and QViewport

* dev:
  QViewport API documentation
  Changelog updates
  QFrame.viewport()
  QViewport class
Changelog updates
ViewportSize.plus(), minus(), times()
API docs for ViewportSize.plus(), minus(), times()
INTEGRATE: ViewportSize.plus(), minus(), times()

* dev:
  API docs for ViewportSize.plus(), minus(), times()
  ViewportSize.plus(), minus(), times()
  Changelog updates
Beginnings of ViewportEdge descriptor
ViewportEdge accounts for scrolling
ViewportEdge.convert(), .toString()