(ROSE CMAKE) cross-platform gettimeofday()

This commit introduces a cross-platform implementation of
the POSIX function gettimeofday().  This allows timer.cpp
to be compiled on Windows using Visual Studio.
(CMAKE ROSE) resolve C2561 errors

Add return statements after calls to abort() in functions that return
non-void.  This eliminates C2561 errors on Visual Studio.

Also, define strncasecmp as _strnicmp for Visual Studio.
(CMAKE ROSE) define NAN for Visual Studio

This commit also contains some other math-related compilation error
fixes for PStatistics.C
(CMAKE ROSE) compile __attribute on Visual Studio

The __attribute mechanism is only supported by GNU compilers.
This commit adds #define directives so that code containing
__attribute can be compiled by Visual Studio.
(CMAKE ROSE) define strtoull for Visual Studio

Microsoft decided to call this method _strtoui64 instead for some reason.
(CMAKE ROSE) don't name variables "interface"

On Visual Studio, interface is a reserved keyword.  This commit renames
"interface" variables to iface instead.
(CMAKE ROSE) replicate mkstemp() on Windows

Visual Studio does not have a mkstemp() function.  This commit
introduces new platform-specific code to replicate the behavior
of mkstemp() on Windows.
(CMAKE ROSE) unambiguosly define State type

This commit resolves C2244.  The fix was to be more explicit about
which State type we are referring to.  This problem arose because
Windows defines its own State type.
(ROSE CMAKE) Rename SelectObject

* Windows defines a function called SelectObject within Wingdi.h .
  This was clashing with ROSE's class of the same name.  This commit
  renames the class to RoseSelectObject.

* PtrSet.h also failed to compile on Visual Studio 2008.  The problem
  was that Visual Studio is apparently more strict about the difference
  between const iterator and const_iterator than other compilers.
  Thus, this commit also contains new code to convert between these two
  types.
(CMAKE ROSE) don't include err.h on Visual Studio

This is a GNU header file.
(CMAKE ROSE) replace __null with NULL

__null is not defined on Visual Studio
(CMAKE ROSE) replace __out with __outstream

__out is not defined on Visual Studio
(CMAKE ROSE) don't name variables OUT

This clashes with Windows code.  Renamed to OUTPUT instead.
(CMAKE ROSE) define snprintf for Visual Studio

By default, Visual Studio calls it _snprintf instead.
(CMAKE ROSE) more C2561 errors

This file was overlooked when I made similar fixes in commit 70b521.
Add return statements after calls to abort() in functions that
return non-void.
(CMAKE ROSE) define strncasecmp for Visual Studio

Visual Studio refers to this function as _strnicmp by default.
(CMAKE ROSE) resolve error C2057

On Visual Studio, you cannot allocate an array of variable size.
This commit changes the array buf into a pointer to resolve this
problem.
(CMAKE ROSE) use boost::unordered_map

hash_map cannot be used in cross-platform code because it is
implemented differently by various compiler vendors.  This commit
replaces the use of hash_map with Boost's unordered_map.
(CMAKE ROSE) define BOOST_FILESYSTEM_VERSION

This resolves a compiler error when including FileHelper.h

This commit also makes it so that we don't attempt to download
the binary edg tarball on Windows, as this is not yet supported.
(CMAKE ROSE) conditionally compile parser code

This more closely matches the autoconf buildsystem.  We now only
descend into the fortran-parser or java-parser directories if
enable-fortran or enable-java (respectively) are turned on.