Use a deepcopy when assigning list_pkgs results to __context__

This fixes a problem that Dave found where a simple assignment caused
the data in the return dict to be linked to __context__['pkg.list_pkgs']
due to a shallow copy, and thus the call to pkg_resource.stringify was
modifying the data in __context__['pkg.list_pkgs']. Dave will be pushing
a commit later on that fixes this in win_pkg.py, this commit fixes it in
the rest.
Merge pull request #5173 from terminalmage/quickfix

Use a deepcopy when assigning list_pkgs results to __context__
Merge pull request #5174 from UtahDave/develop

Fix list_pkgs on Windows.
Make explicit context overwrite kwargs for templating, Fix #5161
Merge pull request #5175 from basepi/context5161

Make explicit context overwrite kwargs for templating, Fix #5161
Fix syntax error in jinja context examples

Bad indentation meant it would pass in the pieces of context as part of
the **kwargs, rather than as part of the context kwarg.
Merge pull request #5176 from basepi/jinjadocs

Fix syntax error in jinja context examples
smartos_imgadm : add a *basic* search option and an update function

* update_installed() (aka. imgadm update)

* avail(search=None) : outputs the last occurrence of 'string' from
'''imgadm avail'''
Merge pull request #5178 from virtua-network/imgadm_feature

smartos_imgadm : add a *basic* search option and an update function
Remove retcode arg from cmd._run, Fix #5112

Checked for external uses, there are none.  Really not sure what it was
gaining us in the first place, but it's been out of use since the fix
for #2640.
Merge pull request #5179 from basepi/retcode5112

Remove retcode arg from cmd._run, Fix #5112
Make pkg state work with Windows packages