*WIP* Register Click

Hi all, I'm pushing this up while I'm still in a very early stage. I'm getting stuck on passing optional blocks via the ampersand `&block` syntax. 

I keep getting wrong number of argument errors and am now thoroughly lost :frowning:. I may just need a tutorial on passing and using option args . . . more comments in line.
The rect problem mentioned above comes into play right here. Since we use Rect as the example element in stroke and strokewidth specs, it chokes unless rect is created with `&blk` over in `dsl.rb`. I don't know why it would give an error but the error was ``undefined method `[]' for nil:NilClass`` called on line 18 here because args.pop was returning nil (since no block is given). I tried using the `pop_styles` method from the dsl (the line I added) thinking that that would grab the styles instead of the nil block.

I thought that `&blk` makes the blk argument optional similar to `blk = nil`, but apparently I'm still misunderstanding since it breaks this spec. . . Any tips?