prepare-command Escaping

Update the prepare-command to not escape the $ character allowing for
the proper expansion of variables in commands.
run Return Value

Update the run macro to return an object that has a __str__ method
returning the first result's output stripped of whitespace at the
beginning/end. This is just a handy shortcut.
with-hosts

This changes the way `with-hosts` works by removing the :providing
argument and assuming the :where argument is, simply, a function body
for a function that takes a single argument, `host`, and that function
gets used in a `filter` call. This removes the `defhosts` macro and
alters the way `tagged?` and `provides?` work such that they can be used
in the new :where argument. The :in argument to `with-hosts` now assumes
that the list it is given is the list of hosts to operate on.