*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.
With oval and star I changed the way we used the ampersand in light of what @wasnotrice taught me.

I did the same with rect, but ran into a problem in the specs. I'll give more details in-line in the appropriate files.