Add functions to enable/disable interfaces

Also added functions to check if an interface is enabled/disabled.
Add dict comparison function to salt.utils
Fix refs to old pkg_resource.pack_pkgs
Add ip.get_default_gateway
Add windows network state module
Remove find_changes function

The functionality that this provides has been moved to
salt.utils.compare_dicts.
Restrict linux network state to non-windows minions

Added a __virtual__ function
Fix virtualname for network states

I had mistakenly set them to 'ip' when they should have been 'network'
Improve error reporting for windows network state

Also general bugfixes from testing.
Add windows network state to docs
Flesh out docstring for windows network state
Move salt.utils.network.valid_ipv4()

This is a better fit in salt.utils.validate.net, so it has been moved to
salt.utils.validate.net.ipv4_addr().
Add validation function for netmasks
Add convenience function to convert netmask to subnet length
Update docs to reference new convenience function
First pass at some file-locking and retry logic for file hashes. Also a couple spelling/docs fixes.
Merge pull request #8091 from terminalmage/windows-net-states

Add a Windows network state
Attempt to improve the Halite error msg
Use non-zero timeout in update method and don't ignore exceptions.

Timeout in update method was set to 0 which doesn't mean no timeout.
As a result update might not work on loaded systems or slow network.
Also timeout exception was silently ignored.
Now sreq.send() is used in the same way as in other methods.
Add an extra element to the end of the lspci list.