FIXED: viewport is used EVERYWHERE to establish size/shape (so you can resize/shape an SVG by merely overwriting that one varialbe on root SVG node)
FIXED: now supports viewbox attributes with non-zero origins