add support for remotely restarting the server

rework beacon
update project file
remove import corpses
beacon cleanup, make tests pass
rework NodeInfoGetter

Server is now considered lost if it fails to respond to 3 multicasts, instead of just one.
NodeInfoGetter now specifies its refresh interval. It is considered to be static if this interval is 0.
remove multicast address duplication
fix some recently introduced bugs with node detection
some server debug output
add a (failing) test - /Tp and /Tc options do not work
correctly handle source files specified via /Tc and /Tp options
Fix missing _NATIVE_WCHAR_T_DEFINED macro when compiling with /Zc:wchar_t
simple syntax fixes
Minor stylistic change.
flyweight fixes

conversion to bool
fix copy constructor
new cache lookup implementation

much faster lookup via a macro usage tree (instead of brute-force quadratic lookup)
performance improvement

Constant time append to cache key - now using a list with fast lookup.
bunch of bugfixes and optimizations for the new cache lookup algorithm
concurrenty optimization - do not read disk file while holding content cache lock
optimizations

reduce locking by updating cache statistics right before maintenance
stylistic changes
added a block of code for preprocessor profiling