Standardizing SMACK names.
* Every identifier introduced by smack now begins with '$'.
* Short identifiers are preferred, when possible.
* Functions are preferred to procedures for arithmetic predicates.
Also, using std namespace, and std::endl, uniformly.
A few improvements for handling found C code.
* Increased instruction support: truncate, unreachable.
* Fix for basic block generation.
* Adding partial type recognition, e.g., for Boolean parameter and return types.
Adding boogie_si_record_{int,obj,ptr} declarations to prelude.
Including <regex> or <tr1/regex> library.
-- also small repair in statement generation.
Ignoring generated files.
Merge branch 'master' into ext
Revert "Including <regex> or <tr1/regex> library."

This reverts commit d8d02348ca4b70e2ba41aa388ce83cc68f1e2afc.
Using LLVM's Regex functions to:
* avoid generating identifiers which are also Boogie keywords.
* strip the obfuscation from Clang-generated names, for C++ programs.
* identify certain statements (i.e. procedure calls) which SMACK interprets.
Fixing double-underscore bug on translated names.
Created two Python scripts for creating Boogie files and running SMACK.
Putting inline to all procedures.
Calling smack.py when runnning regressions.
Removed old bash scripts.
Updated README file with new names of scripts.
Fixed smack.py to invoke Boogie in a more general fashion.
Updated README to reflect changes in how Boogie is called from smack.py.
Updated scripts for Mac compatibility.