(Binary Simulator) More functions for dealing with callbacks.

Made it more convenient to add and remove callbacks to existing
processes and threads.
(Binary Analysis) InsnSemanticsExpr expression trees use boost::shared_ptr

These trees (lattices really, since separate expressions can point to common
subexpressions) use boost::shared_ptr for their reference counting.  This
makes the pointer declarations a bit more verbose, but is well worth it since
the user doesn't have to worry about reference counts any more.  Here's some
sample changes you might need to make to your own code:

   using namespace InsnSemanticExpr;
   const TreeNode *a = LeafNode::create_variable(32, "foo");
   const TreeNode *b = LeafNode::create_number(32, 100);
   const TreeNode *expr = new InternalNode(32, OP_ADD, a, b, "add 100 to foo");
   expr->deleteDeeply(expr); expr = NULL;
   const LeafNode *x = dynamic_cast<LeafNode*>(a);

Now looks like:
   boost::shared_ptr<const TreeNode> a = LeafNode::create_variable(32, "foo");
   boost::shared_ptr<const TreeNode> b = LeafNode::create_number(32, 100);
   boost::shared_ptr<const TreeNode> c = InternalNode::create(32, OP_ADD, a, b, "add 100 to foo");
   // never explicitly delete pointers now
   boost::shared_ptr<const LeafNode> x = boost::dynamic_cast<const LeafNode>(a);
(Binary Simulator) Updated to use new InsnSemanticsExpr interface
(Binary Analysis) Added SymbolicSemantics test case from Cory

This tests what happens when a user doesn't remember to correctly
reference count an InsnSemenanticsExpr.  The new interface fixes
these kinds of problems.
(Binary Analysis) Added typedefs for long boost::shared_ptr<> types.

See projects/simulator changes for examples of how to make your
code less verbose when it comes to using SymbolicSemantics and
InsnSemanticsExpr.
Retriggering CI tests
(Binary Analysis) Changed line coding to unix
(Policies) Changed XEmacs instructions for Unix Line Termination
(Binary Analysis) Function return properties migrated into Sage

The return properties determined by the Partitioner have been
migrated into the SgAsmFunction IR node.  The old accessor:

  bool get_can_return();

is now

  MayReturn get_may_return();

similarly for the modifier.
(Binary Unparser) AsmFunctionIndex has new callbacks

* Added callbacks invoked before and after printing the whole
  table.

* Added a before-table callback that prints the key for function
  reasons.
(StringUtility) Additional functions for manipulating strings

* prefixLines() -- adds a prefix to every line of a multi-line
  string.  This is useful for indenting.

* isLineTerminated() -- returns true if the string ends with
  line termination.
(Binary Analysis) Function lister supports footnotes

This allows the function index callbacks to add footnotes to entire
table columns or to individual items in the table.

The function-reason column has a footnote that describes the letters
used in that column.

For now, the Footnotes class is inside AsmFunctionIndex, but it might
eventually move out if it proves to be generally useful.
(Binary Analysis) The disassembler test adds a footnote.

This is mostly just to test that end-users can add footnotes to
their own table columns.
(Binary Analysis) Updating test answers

The format of function indexes changed due to the recent additions
of footnotes.
(Binary Analysis) Partitioner debug info includes function reason key

If you run the partitioner with debugging enabled (e.g., "disassemble
--debug-partitioner in the tests/roseTests/binaryTests directory) then
the output includes the key that describes what letters are used for
the various function reason-for-existence flags.
Merge commit 'bed4b36d9c5b004380a5847b9a28b829db636441' into HEAD