(Binary Analysis) Added MemoryMap::mmodify to change permissions

Unlike mprotect which changes permissions to a specified value,
mmodify adds and/or removes specified permissions without
affecting any others.
(Binary Analysis) Changed print format of AddressUsageMap to be more readable
(Binary Analysis) Added --remove-zeros to recursiveDisassemble tool

Causes executable sequences containing more than some specified number
of contiguous zero bytes to be remapped without execute permission. This
can make partitioning faster since it avoids trying to process large
regions of zeros which are unlikely to be valid code.
(Binary Analysis) Updated to latest version of Sawyer

* IntervalMap::nodes and IntervalSet::nodes renamed to
  IntervalMap::intervals and IntervalSet::intervals

* Interval in Boolean context returns true if non-empty
  and false if empty.

* GraphTraits, IntervalMapTraits, MapTraits, IndexedListTraits
  in order to obtain iterators and distinguish between const and
  non-const iterators in templates.
Merge remote branch 'rc/master' into m68k
(Support) Updated to latest version of Sawyer

* Addes AddressMap, AddressSegment and various Buffer types
(Support) Enabled use of Boost iostreams

This is needed for Windows support of memory mapping, which
is a feature needed by binary analysis.
(Binary Analysis) MemoryMap reimplemented in terms of Sawyer::Container::AddressMap

* AddressMap has a more flexible API that uses a notion of constraints to
  select elements in the address space and operator flags to control how the
  constraints are applied.  MemoryMap inherits this API, and thus most of its
  old API has gone away.

* Enum constants MM_PROT_* have been renamed to be more descriptive and easier
  to for users to define additional bits.

* MemoryMap is directly convertible to AddressIntervalSet via the set's
  constructors.

* To iterate over intervals use "map.intervals()" rather than "map.segments().keys()";
  To iterate over segments use "map.segments()" rather than "map.segments().values()";
  To iterate over interval/node pairs use "map.nodes()" rather than "map.segments().nodes()".
(Binary Analysis) ROSE library source code uses new MemoryMap API
(Binary Analysis) ROSE library tests use new MemoryMap API
(Binary Analysis) Tests answers updated

* We no longer try to combine MemoryMap segments that have
  related names.  The original choice to do so was partly
  because memory maps had such poor performance, but it
  resulted in names that were really long or which were
  truncated in memory map dumps.
(Binary Analysis) Binary projects updated to use new MemoryMap API
(Binary Analysis) Partitioner algorithms organized in Engine

In rose::BinaryAnalysis::Partitioner2...

Many of the algorithms that were built on top of Partitioner
are now part of the Engine class.  The idea is to provide the
user with an easy way to modify the algorithms and still
protect the core partitioner methods.
(Binary Analysis) User-defined attributes in partitioner
(Config) Support for using Wt
(Binary Analysis) Interactive function listing tool
(Binary Analysis) Added partitioner call graphs
(Build) Removed old config scripts
(Binary Analysis) Fixed bug in binary clone detection for PE specimens

PE specimens failed to load because the clone detection was trying
to link the PE specimen with builtins.so, an ELF shared object.
(Binary Analysis) First version of basic block listing