Fix reporting of file.blockreplace state when test=True

When test=True is used, this state does a dry run and doesn't change the
file (as expected), but reports that changes were made. This commit
fixes the reporting so that it states that changes would have been made.
Initial stab at a development salt shell

There is quite a bit of additional work that could be done here but this
gets things rolling at least.

Refs #3814
new external_ip grain for salt - requires that requests be installed
Merge pull request #9143 from whiteinge/salt-shell

Initial stab at a development salt shell
Merge pull request #9142 from terminalmage/quickfix

Fix reporting of file.blockreplace state when test=True
Prevent traceback when job is None.
Merge pull request #9145 from cro/develop

Prevent traceback when job is None.
move external_ip to separate file
return empty dict instead of False if requests fails to import
Merge pull request #9144 from jfrost/external_ip_grain

new external_ip grain for salt - requires that requests be installed
Whopps! Needs to be an empty dict :)
Added missing definitions for networking setting, add and get.  Changed interface parsing to use a dictionary for inet and inet6 interfaces instead of an array.  Certain assumptions were made within the code on the order the ipv4 & ipv6 interfaces would appear, using a dictionary instead resolves some potential issues that could have popped up with an array.  removing the tests for ip.get_network_settings and ip.build_network_settings from the exclusion.
Merge remote-tracking branch 'upstream/develop' into develop
Merge pull request #9147 from garethgreenaway/develop

Adding missing network functions for debian_ip.py
salt.utils.which(): use default_path if binary not found

To make salt.utils.which() operate well in salt-call when invoked from
cron (where PATH may be present but limited), try the paths in
default_path if the binary is not found in the search_path.
Make salt.utils.network.linux_interfaces work in cron
Merge pull request #9148 from terminalmage/issue7990

Make network.interfaces work in cron where PATH is limited
Remove two old variable assignments
Merge pull request #9151 from whiteinge/softlayer-list-images

Remove two old variable assignments
Fileserver integration testing.

Finished the roots integration tests for now. Started on GitFS testing.
Merge pull request #9152 from cachedout/roots_gitfs_testing

Fileserver integration testing.