Adding new convenience categories and subclass

Some more wonderfully convenient additions. You won't hate these.
just curious on your convention for `[self frame].property` vs `self.frame.property` ? - it's all across this file