Update app level styles

Hi all,

This PR is to address a couple of issues from #711. It's pretty basic, except that I added the app-level rotate method. I didn't test `transform` and `translate` because as I understand it they are still WIPs (#409). 

But I did look a bit at rotate and ran into the problem with angle / rotate (#370) and partially fixed it. My main goal here was just to add it as an app-level method so I had to change a couple of things to get that to work. And those things happen to overlap with parts of issues with gradient and rotate
(for example sample37 is broken on master right now, but fixed on my branch).

Just before thinking this was done I noticed that sample31 was broken again. And it turned out to be because line didn't have a default for angle, and  `Swt::Gradient` looks at the object for angle instead of looking at `Shoes::Gradient` [like it should](http://shoesrb.com/manual/Styles.html#:angle).

So in short, I implemented what I meant to as far as #711 is concerned, but the PR feels a little funny since there's some work that needs to be done on [rotate](https://github.com/shoes/shoes4/search?utf8=%E2%9C%93&q=rotate&type=Issues) and [gradient](https://github.com/shoes/shoes4/search?q=gradient&type=Issues).


So . . . yeah, I think this is ready to merge, I'm just commenting thoroughly since it seems a little hodgepodge-ish ... :smiley: 
Moved all of this internal_app rotate stuff over to `Common::Style`