Fix duplicate task/params in client.

Client wasn't checking if 'params' node already exist in supplied xml and
that lead to duplicate 'params' nodes in resulting job.xml. This commit adds
the check and also checks for existing params/param nodes with the same 'name'
values and replaces those.
Recipe roles in client.

Recipe roles are now properly handled in client. They also have higher priority
than task roles, so if both are specified recipe role will be used.
Merge pull request #14 from sm00th/client_xml

Client xml fixes