Added basic support for hash_behaviour=merge in roles

Dict vars passed to roles are now properly merged instead of simply overriding dict vars that are coming from vars_files.

This pull request probably needs more eyes, I'm not sure my overall approach to vars handling is good enough. Any suggestions are welcome!