Fix for issue where msgpack errors cause modules to be deleted

Right now if there is a deserialization error in msgpack (payload.py) it swallows the exception and returns a dict, this is confusing to the caller since they have no idea that this was an error condition-- which means that the call is indistinguishable from an actual empty dict response. This is manifest mostly in syn
cing files-- because when there is an unpack error the minion assumes that meant
 there where no files on the master, and then just deletes all of its files.

While fixing that I also noticed that the fileclient treats master timeouts the same way (return '', meaning no files). These both seem like bad ideas, in the event a master is unavailable we should error out and just keep the modules that we have.
Remove unused serial object
Add force option to lock()
Remove unused import
Fix nonsense language in error message
Fix typo
reword docstring
add virtual function
don't load on windows
utils.error.fire_exception: fix unsafe mutable default argument value

************* Module salt.utils.error
salt/utils/error.py:44: [W0102(dangerous-default-value), fire_exception] Dangerous default value {} as argument
Fix for #17051
Add regression test for #17051
Add "normalize_ret" function, so we don't have to copy/paste so much

Add checks for "changes" since we want to test cases where there aren't changes to be made
Update nssm to 2.24
Merge pull request #17059 from cro/nssm_update

Update nssm to latest 2.24 (2014-08-31 release)
Merge pull request #17049 from terminalmage/quickfix

Fix nonsense language in error message
Updated win_ntp.py to catch the ValueError that would occur when
a windows machine is attached to a domain and not using NTP for
time
Quotations are not necessary when passing cmd arguments in as an array

- This also fixes the inability to clone mercurial repos on Ubuntu 12.04
Fix failing tests
Merge pull request #17069 from cachedout/issue_17055

Fix failing tests