Inlined Boogie code.
* Can now write Boogie code in C, e.g. __SMACK_code("assume @;", x).
* The (i)th "@" in the string passed to __SMACK_code is substituted by SMACK's
  representation of the (i+1)st argument to __SMACK_code.
* "{@}" refers to the "value", whereas "@" alone refers to the "pointer"
  -- this makes a difference only with the 2D memory model.
* Basic procedures (e.g. __SMACK_assume) are no longer hard-coded.
Inlined Boogie declarations.
* Use `__SMACK_code` for inline code.
* Use `__SMACK_decl` for a procedure-level declaration.
* Use `__SMACK_top_decl` for a top-level declaration.
* Refer to the previous commit for substitution syntax.
Added a missing cassert include to be able to compile it on linux.
Several finishing touches on inline-boogie.
* Avoiding redundant Boogie program declarations.
* Refactoring for SmackRep::arg, SmackRep::call, SmackRep::code, SmackRep::proc.
Merge branch 'inline-boogie' of github.com:smackers/smack into inline-boogie
Merge branch 'develop' into inline-boogie

Conflicts:
	include/smack/SmackRep.h
	lib/smack/SmackInstGenerator.cpp
	lib/smack/SmackRep.cpp
Ignoring files generated by regression tests.
Merge branch 'inline-boogie' into develop
Refactoring of BoogieAst.
* Eliminated redundancy between `ProcDecl` and `Procedure`, which no longer exists.
* Eliminated `type` field from the `Decl` base class.