In QueryLoggingSolver call flush() on std::ofstream so that queries
get correctly logged if an assertion failure is hit later on.
Port to LLVM 3.3

Major changes are:
- Switching to llvm-link to build archive files
- Use GetMallocUsage instead of GetTotalMemoryUsage (be aware of bug in
  LLVM 3.3 http://llvm.org/bugs/show_bug.cgi?id=16847)
- intrinsic library functions like memcpy/mov/set use weak linkage to be
  replaced by e.g. uclibc functions
- rewrote linking with library
- enhanced MemoryLimit test case to check if mallocs were successful
Fix implementation for putchar

According to manual: putchar() return the character written as an
unsigned char cast to an int or EOF on error.

Use return value of write to return the correct value for putchar.
Modified the buildmode of bitcode libraries.

The Default is Release+Asserts but if you are building KLEE with debug symbols (for example
"Release+Debug+Asserts" or "Debug+Asserts") then this breaks because KLEE will
look for the bitcode libraries in the wrong place because the
RUNTIME_CONFIGURATION macro is not defined to be what KLEE actually builds as.

This has been tweaked so that when we build the bitcode libraries the Makefile
variable "DEBUG_SYMBOLS" is correctly overridden.
Fixed unused static function warning for forceImport
Fixed multiple definitions of POSIX file functions

Function like stat() were defined for 32bit and 64bit version.
Added compile time based selection of appropriate version
using GNUC macros __x86_64__ and __ppc64__.
Merge branch 'fix_runtime_build_mode' of https://github.com/delcypher/klee into delcypher-fix_runtime_build_mode
Merge pull request #21 from delcypher/fix_query_logging

Fix queries not being logged correctly if an assertion failure is hit.
Compile separate version of fd files only for LLVM 3.3 or higher
Merge pull request #23 from MartinNowack/fix_putchar

Fix implementation for putchar
Merge pull request #17 from MartinNowack/LLVM33

Make KLEE compile with LLVM 2.3.