WIP: Overwrite ^() so that is doesn't throw DomainError

This is meant to address this JuliaOpt/JuMP.jl#318

There is still a problem with this: this patch overwrites the general ``^`` function, which we don't want.

When I use the package with this patch I get this:

````
julia> using ReverseDiffSparse
Warning: Method definition ^(Float64,Float64) in module Math at math.jl:252 overwritten in module ReverseDiffSparse at C:\Users\anthoff\.julia\v0.3\ReverseDiffSparse\src\revmode.jl:291.
````
I actually don't understand why that happens for the ``^`` method, but not for ``log``, which is overwritten in the line above it? Essentially we should have this overwrite ONLY apply for the ReverseDiff package, nothing else, i.e. this should work in the same way as the existing line above it.

@mlubin can you take a look? Thanks!