Adding some features to depend DSL.

There's a few things that were available in the remote dependencies that should be available
in the local dependency. A little refactoring but this seems, to me, the best solution for
getting everything in cleanly.

The basic idea here is to just subclass dependency which contains the #try that executes
#try! in the individual implementations. For remote that uses the Capistrano invocation
as expected, and for local it would use a kernel#system execution. Some of the methods
can easily be implemented using the basic File module calls.