The best practice in Python is not to use mutable object (i.e. list,
dictionary, or instances of most classes) as value of default
argument (see https://goo.gl/Kwhg0T). A hacking rule to enforce this
practice is added as well.
The patch was inspired by CR https://review.openstack.org/#/c/198465/
and took most of its code from it as well. That's why original
copyrights are kept.
Closes-Bug: #1471349
Change-Id: Ia77b1736dbc3d4e28ff2d2c3424e9cfcaefa5077