initial implementation of using cmake

added new CMakeList.txt for using cmake, includes check for GCC 4.5+
added new ibcp_config.h.in for passing cmake variables to source files
added optional path to source files to awk scripts
added version and copyright year from cmake to ibcp
allow path of executable to contain '\' or '/'
removed stray CR in test_ibcp.cpp
(need autocrlf=false in git config so source files don't get CRLF)
updated CMakeLists.txt to also work on Windows

on Windows (MSYS) set the resource compiler path
changed executable from ibcp.exe to ibcp
(Windows CMAKE will add the ".exe")
added check for awk program to cmake
reformatted CMakeList.txt
removed setting of CMAKE_RC_COMPILER for MSYS/Windows

this is not necessary if PATH is set correctly on Windows
changed GCC 4.6 required fatal error to just warning

this change was to allow GCC 4.5 and prior to be used, just that it is
not possible to statically link libstdc++, which was originally done
so that binaries released did not require libstdc++ (a problem when
running on the Windows platform)
changed test_codes.awk to work on both Windows and Linux

to work on Windows (with DOS format CRLF files), the RS variable needs
to set to "\r\n", but this causes the script not to work on Linux;
therefore, an alternate solution was needed; the problem was that on
Windows, because RS is not set, the CR character is part of the third
field of the line (as in xxx_Code<CR>), when the code removed the last
five character, the "_" is left as part of the code, which ultimately
causes the parser tests to fail since all the code names in the auto-
generated test_codes.h to contain a trailing "_" which is written to
the output file; to correct this problem, instead of just subtracting
5 from the left of the field, the index() function is used to find the
"_Code" string and one is subtracted from this result, which will work
on both Windows and Linux
changed enums.awk to work on both Windows and Linux

on Windows, the CR was being read into the variables (because RS was
not set to "\r\n") and therefore to the output header files; so the
script was modified to remove the CR only if present, which still
works on Linux where the CR is not present
eliminated possible warning when linking static libraries

in CMakeLists.txt added an if GCC less than 4.5 statement around the
  statement that added the static libraries to prevent warning when
  GCC if less than 4.5, which does support this feature
removed the old Makefile
corrected in source directory builds

the problem was caused by a conflict between the local string.h header
file and the system string.h header file because when the project binary
directory was added to the include directories, it was looking in the
project directory before the system include directory and therefore was
not finding the system string.h file; the problem was correct by not
adding the project binary directory if it is the same as the project
source directory
changed test code to read test inputs from file

the current test inputs were moved from test_ibcp.cpp to new test input
  files test/*.dat
the test code was modified to read the test inputs from a text file,
  the name of the file determines the type of test: 'parser',
  'expression' (translator in expression mode only), and 'translator'
all the expected test results were modified to remove '.exe' from the
  program name
the translator expected test results files were renamed (1-4 to
  expression1-4, 5-17 to 1-13)
modified the regression test scripts to automatically determine the
  tests to run be the presence of the new test/*.dat files
updated CMakeLists.txt to create the regtest script from regtest.in
  where the project source directory is used to determine where the
  *.dat files are located (supporting wherever the build directory is)
added new .gitignore so that build and nbproject sub-directories
resolved platform issues with parser test #3

changed limit test value 1.234e-308 to 1.234e-324 on parser test #3
  inputs so that value will produce ERANGE value on Windows 7 (64-bit)
added code to parser print token to force output of only two exponent
  digits if there are 3 and the first is a '0' because Windows platform
  always outputs 3 exponent digits and Linux only does if needed
updated parser test #3 expect results (now works on all three platforms)
updated test_names to include more enumeration types

renamed test_codes.awk and test_codes.h to test_names.awk and
  test_names.h; and modified to write complete initialized array
  definitions with names obtained from tables.cpp (code_name) and
  ibcp.h (tokentype_name and datatype_name)
changed 'e' pointer in print_token() of test_ibcp.c to better named
  'exp'
updated copyright dates on all effected files to 2012