Tidy up the stack depth management code.
More tidying of stack management code.
Improve compatibility detection for <time.h> and <sys/stat.h>: 
- Move <time.h> before other includes on Windows, so we are sure the time_t definition being checked doesn't come from <sys/types.h>. 
- Padding at the end of Tcl_StatBuf doesn't influcence binary compatibility, so relax panic check accordingly.
Improve compatibility detection for <time.h> and <sys/stat.h>: 
- Move <time.h> before other includes on Windows, so we are sure the time_t definition being checked doesn't come from <sys/types.h>. 
- Padding at the end of Tcl_StatBuf doesn't influcence binary compatibility, so relax panic check accordingly.
[33b7abb8a2] [7174354ecb] Rewrite TclCompileThrowCmd().
simpler stack management
Stack housekeeping repair for last checkin.
merge trunk
Make compiled [if] stack depth estimation simpler and more accurate.
Repairs to compile/exec debugging output.
 merge trunk
Select improvements in stack depth estimates brought over from mig-review.

Mostly these are just simplifications, removing code that wasn't needed.
Some changes make the stack depth estimate more accurate instruction by
instruction.
merge trunk
Revise INST_EXPAND_STKTOP so that it no longer makes use of its operand.
All the information required to do a proper expansion of the exec stack
to support expanded command invocation is already present.  The operand
doesn't provide any essential information.  By ignoring it, we eliminate
the risk that the compiler might fill in the operand with a bad stack depth
estimate value.  INST_EXPAND_STKTOP doesn't need an operand, but in order
to support loading of existing bytecodes we cannot change it now.  There's
also no need to change what the compiler tries to place in the operand,
though changing it to always be zeros would be acceptable now.
Leave behind the stack depth estimate testing machinery in this branch.  It verifies
instruction by instruction that the stack depth estimated by the compiler is matched
by the stack depth at execution time.  Use a --enable-symbols=all build to perform
the testing.  In this checkin, a pass through the test suite validates all but
the assembler.
Silence various warnings when doing a 64-bit build with MSVC: Those warnings can only _really_ be fixed in "novem" (so, don't silence them there)
Silence various warnings when doing a 64-bit build with MSVC: Those warnings can only _really_ be fixed in "novem" (so, don't silence them there). 
Use vsnprintf (more portable) in stead of _vsnprintf, except on MSVC
Workaround for mingw-w64 (AMD64-only) bug: It appears that zdll.lib (as produced by Microsoft tools) doesn't import the zlib symbols correctly, so use "libz.dll.a" produced with mingw-w64 tools in stead.
Fix env.test when running mingw-w64 (AMD64 build) test-suite on wine64
Fix some gcc warnings which become visible with -Wextra