Provide our own implementation of Capistrano's find_servers_for_task in order to provide a default :only option that doesn't conflict with the task's.

This is to fix #412: :only => { :primary => true } getting clobbered. Basically, since rubber can be used to manage a cluster of machines running virtually any OS, but its tasks can currently only be run on Linux, we'd like to provide a default :only option for Capistrano's host filter based upon our :platform value.  However, this was blowing away any :only value configured on the task itself, like the deploy:migrations task uses.  The change here is to deep merge the two options hashes.  Actually, that's a bit of a lie because this will only deep merge one additional level, but that's all we need currently.  This will almost certainly come back to haunt me at some point, but a full recursive solution was going to be a good deal messier.