Added radial-gradient incl svg and canvas

This is an experimental first attempt at radial gradient support. Please don't merge this as it is far from ready. Just if you have some time would be happy to receive any feedback or ideas on the general concept, syntax of the radial-gradient function etc =) 

Before being merged I expect to do a lot of refactoring and bug fixes. I'm still learning Stylus so sorry if some of the code is a bit of a mess. 

For the radial-gradient function I'm aiming to be as close to [w3c syntax](http://dev.w3.org/csswg/css3-images/#radial-gradients) as reasonably possible.

It generates four main types of radial gradients as output
- w3c aka  the `-vendor-radial-gradient(...)` style e.g. mozilla / chrome > 10 / ie10 / safari 6
- old webkit  aka the `-webkit-gradient(radial, ...)` style e.g. safari 5 incl ipad/iphone / chrome < 10
- canvas e.g. ie5.5-8
- svg e.g. ie9 / opera

Generally it works as a proof of concept, but no two types look exactly the same yet for simple cases, and can look wildly different for more complex cases.

For the simple case of `radial-gradient(green, yellow)`:

w3c and svg is easy.

For old webkit and canvas you need to know the intended radius of the circle in pixels.

I've tried the syntax `radial-gradient(green, yellow 30px)` where a final color stop with a pixel offset to also taken to be the radius. This is what compass appears to do. It works OK for the simple cases except may be confusing as in pure CSS `radial-gradient(green, yellow 30px)` is not the same as `radial-gradient(green,  yellow 100%)` applied to a box 30px by 30px in any browser I tested. 

After trying the final color stop as radius solution I'm not sure its the best way. Maybe simply using the w3c syntax "size/shape" optional argument to determine the radius  e.g.  `radial-gradient(position, size/shape, stops...)` instead would be better. 

For canvas where you have a radius smaller than the containing box but not the boxes dimensions simply generating an image the size of the radius then setting the boxs background-color to the final color stop color to fill the remaining space works OK. I think a similar technique could also work for an alternative linear gradient syntax ? 

Things get more interesting with elliptical shapes or implicit sizing (e.g. "farthest side", "closest corner") support.

Explicitly sized elliptical shapes should be easy enough to draw with canvas and possibly SVG, but I havn't tried yet.

Implicitly sized elliptical shapes, or circles obviously require knowledge of the size of the containing box which is a difficult problem.

For boxes that the browser determines the size of I don't think it is possible as e.g. dynamic content could change the size of the box on every page.

For boxes that have an explicit size defined at some level in the stylus is it possible to traverse the stylus parse tree to find the closest ancestor width and height properties ?

Otherwise what do you think of an additional argument to the radial-gradient function to specify the size of the box in cases where implicit sizing is used ? This means `radial-gradient(green, yellow)` would not generate an image unless you specified the size of the box. I'm not sure what that would look like yet. Radius could be optionally explicitly defined as well or calculated from the box size.

Lastly is it possible to pass stylus tuples as arguments to JS functions and access all the values ? When I tried doing that and had a look with node-inspector it appeared as if I only had access to the first value. 

Thanks for the awesome foundation you've built with Stylus and Nib. I'm really enjoying the power of this language.

Cheers
Isaac