start being able to be positioned relative to parent extent

* fixes #690
* I introduced the constraint of the value being smaller than 1
  because it should be rare for elements to be positioned outside
  of their parent container and if so not relative to it. I'm
  scared about cases where people do calculations ending up in
  floats and suddenly 100.3 is interpreted as 100 times the
  width of the parent. Would be weird.
* I'm a bit unhappy with the code have a quick look please @wasnotrice @jasonrclark