Improve Server Property handling

* Deep copy properties added using the 'roles' keyword
* If a property exists on a server when another definition is
encountered and is an Array, Set or Hash then add the new values

This allows roles to specify properties common to all servers and
then for individual servers to modify them, keeping things DRY

See example in: spec/lib/capistrano/configuration/servers_spec.rb:31