Adds `from_{left,right,top,bottom}` methods, and some fixes

The `from_*` methods create a frame inside the receiver, with optional margin, and one required dimension.  e.g.

```ruby
rect = CGRect.make(x: 10, y: 10, width: 10, height: 10)
rect.from_right(width: 5, margin: 2)  # width is a required option
# => [[3, 0], [5, 10]]
# the resulting frame is *inside* the receiver, just like the other methods, unless the absolute option is true
rect.from_right(width: 5, margin: 2, absolute: true)
# => [[13, 10], [5, 10]]
```

And misc specs and fixes.  Bumped version to 0.13.2