Make KLEE fail in case main function is missing

Existence of main() function is checked with assertion.
This check fails if KLEE is compiled in Release mode.
Fix error message for failing linking of libraries

In case linking of external libraries failed, user would
only be informed if KLEE is compiled with assertions enabled.

This fix lets KLEE always fail.
Merge pull request #94 from MartinNowack/fix_assert_library_linking

Fix assert library linking
Removed use of deprecated Tcl parser for tests. This allows
llvm-lit from LLVM3.3 to actually run KLEE's testsuite.

Things still seem to be broken though.
Fixed Expr/Parser/ConstantFolding.pc test for llvm-lit (this probably
breaks DejaGNU tests). The issue is that in Tcl the quote needs escaping
but for llvm-lit we don't need to do this.

We should move to using the LLVM FileCheck tool instead of grep!
Fixed Expr/Parser/MultiByteReads.pc test.
Fixed Expr/Parser/Simplify.pc test for llvm-lit. Escaped quote issue.
Add LLVM tool directory to PATH when running tests with llvm-lit.
This is needed because the helper tool 'not' is used by some tests
Put llvm tools directory at beginning of PATH list so that the LLVM
version that KLEE and llvm-as use is the same.
Allow llvm-lit from 2.9 to work by hacking %T substitution variable.
Fixed many tests that make use of the file tool to check
a file created by KLEE exists. A big difference between
DejaGNU and llvm-lit is that in DejaGNU the working directory
is the test output directory (e.g. test/Feature/Output) but
in llvm-lit the working directory is the test directory
(e.g. test/Feature )

To fix this I have used the %T substitution variable for llvm-lit.

I have also improved some tests by using LLVM's FileCheck tool
and removing of hard coded constants for data type size in
some places.

This commit inevitably breaks running the tests under DejaGNU.
Although it is possible to hack by introducing the %T substitution
variable some tests would still be broken because the use of shell
pipes in DejaGNU doesn't seem to work properly. I could work around
this but it's really not worth the effort.
Fixed Feature/LongDouble.cpp test for llvm-lit by removed use of
{ } quotes. I also add FileCheck lines but I've not added running
FileCheck because only new versions of FileCheck support the CHECK-DAG:
syntax.
Fix Feature/Envp.c test for llvm-lit by providing the PWD environmental variable
in test environment.
Force python2 to be used when running llvm-lit. This needs to be fixed
properly at configure time at some point.
Fixed Feature/InAndOutOfBounds.c so it did not make use of ! which
seemed to causing problems for llvm-lit's parser.
Removed all of llvm-lit's dependence on DejaGNU. A few things
are now broken and will be fixed shortly.
* Do not ignore lit.local.cfg files needed for llvm-lit
* Ignore lit.site.cfg file.
Add lit.local.cfg file for test/Concrete so no tests are executed
in this directory. I don't know why these tests are here, they
weren't executed before by DejaGNU.
Fixed tests where llvm-gcc was called without the -emit-llvm flag.
DejaGNU testing used to have this flag in its substitution variable
but for llvm-lit this has not been done.

I could replicate what DejaGNU did but by forcing developers to be
explicit when creating LLVM bitcode

* Remove test suite inconsistentcies. Some tests explictly use
  -emit-llvm
* Allows for tests to be written in the future that invoke
  the compiler as a native compiler
Added Runtime/POSIX/lit.local.cfg file that prevents the POSIX
tests from being executed if not enabled at configure time.