right and bottom methods for Dimensions

* metaprogrammed since everything else would have really just been
  copy and pasting the left/top methods. What do you think? Is it
  readable enough?
* removed specs were kind of flawed from the beginning, using a
  flawed/not up to date behavior for right/bottom.
left/top report nil if not set instead of 0

* changed from previous code that reported 0 in an attempt to
  be compliant with shoes3 and was at fault with that... the first
  element reports 0 for left/top but that's because that's the
  x-y coordinate at that point
* so why does it report nil now and not the x/y? Because that's
  what absolute_left/top are for. And I think it's super confusing
  that you can set a top value of say 50 and then it'd report
  another value when asked about it under circumstances. Because
  top/left are set relative to the start of the slot they are in,
  so the actual real top of an element is the top of its slot plus
  its own top value... it's confusing
* this breaks compatibility but I believe it's a change worth
  making. Need opinions though.
right/bottom init and flow specs

* specs for initing an element with them
* also some specs on how they behave within a flow
little method extraction for absolute placement of elements in slots
Position elements that do not take up space

* see simple-form.rb - backgrounds want to be positioned as well
  the current position does not get updated though
Merge branch 'master' of github.com:shoes/shoes4 into right_and_bottom
Elements now report their need to be positioned

* needed for backgrounds which sometimes don't need to
shared sample was just used in one place --> remove it
Moves takes_up_space? to the instances where it belongs

* also let the border not be positioned
fill_setup in ancestor does the same already
gc --> graphics_context renamings
Could not find a usage of this method - revert if necessary
Merging right and bottom in