Client xml fixes

There are 2 commits changing client xml handling in this pull request.

* fix for duplicate task/params issue:
  Client now checks if task/params node already exists and uses it in case it does. It also checks for existing "CLIENTS"/"SERVERS" param nodes and overwrites them instead of adding new ones.

* recipe roles:
  recipe roles are now properly handled and have higher priority than task roles, i.e. if recipe role is set as CLIENT and one or more task roles are set as SERVER the host will still be treated as a client.