Remove strcpy calls, proper use of strncpy/strcpy_s

Replaced all usages of `strcpy` with `strncpy` or `strcpy_s`.

Make sure that all usages of `strncpy` specified the correct buffer size.
Fix railgun crash on XP SP3

Fix issue where the railgun API was relyling on FormatMessage returning a
valid pointer when the error is `ERROR_SUCCESS`. On some platforms, such
as XP SP3, the function would return a NULL pointer for this case. This
fix makes sure that in the case of a NULL pointer the error message is set
to a value that matches that found on other platforms.

[FixRM 8505]
Land #33, Fix XP SP3 Railgun Crashes
Better errors when formatmessage fails in railgun

Previous change stopped the session from crashing on NULL, but this change
actually has more realistic messages coming back intead of always
indicating that things happened correctly. It's still up to the caller to
check the return code to make sure it's ok
Land #35, FormatMessage may fail even when GetLastError is not 0.
Land #32, strcpy cleanup

Housekeeping against potential BOFs.
Explicitly apt-get update every time?

Trying to fix the failing travis build,

https://travis-ci.org/rapid7/meterpreter/builds/13001986
Land #37, apt-get update before each build
Upgrade to VS 2013
Merge pull request #41 from OJ/vs2013

Upgrade to VS 2013
Merge branch 'upstream/master' into command_refactor

Conflicts:
	make.bat