Merge remote branch 'rc/master' into clone-detection

Conflicts:
	scripts/rth_run.pl
		Used upstream version
	scripts/test_exit_status
		Used upstream version
(Config) Minor tweaks to rosegit tools
(POET) Fixed compile error for -D_GLIBCXX_DEBUG with g++ 4.4.5
(SqlDatabase) Emit elapsed time for each query when debugging
(Binary Analysis) Handle ELF symbol bindings and types that are out of range
(Clone Detection) Exit with failure if cannot load libraries
(Build) Debug config only adds debug support; does not change optimization level
(Clone Detection) Parallelism for 25-run-tests comes from the config file
(Clone Detection) Script to run pair-wise comparisons
(Clone Detection) Minor changes to run-targets.sh

* Compare Ox vs Oy when x==y

* Avoid comparison of Ox vs Oy if we compare Oy vs Ox
(Clone Detection) Fixed bug when linking with only builtins.so
(Binary Analysis) Added MemoryMap::erase_zeros()

Erases parts of a memory map that have long sequences of zero bytes
that are executable and readable.
(Clone Detection) Commented out code that writes disassembly into database
(Clone Detection) run-targets.sh does something
(Clone Detection) commented out another memory hog
(Clone Detection) 10-generate-inputs doesn't fail if called with only "--ngroups=0"
(Util) Easier way to print grammatically correct numbers

Old way:

  std::cout <<"array contains " <<array.size() <<" " <<(1==array.size()?"property":"properties") <<"\n";

New way:

  std::cout <<"array contains " <<plural(array.size(), "properties") <<"\n";

Output in both cases is either:

   array contains 0 properties
   array contains 1 property
   array contains 2 properties
(Clone Detection) Very minor tweak to a debugging message

This debugging message is not disabled because Andreas might
need to to see where 25-run tests has problems.
(Clone Detection) 2d worklist splitting; cache eviction

* The worklist for 32-func-similarity can be split into a quadtree
  by treating function IDs a 2-dimension coordinates.  Since the
  number of I/O operations in 32-func-similarity is a function of
  the number of distinct function IDs in the worklist

* Fixed a bug in how function output groups were cached which caused
  them to be read multiple times from the database in some situations.

* Implemented cache eviction.  The work list is analyzed up front
  so that output groups can be evicted optimally.
(Binary Analysis) Fixed use-def bug in symbolic semantics

* Current instruction was sometimes added as a definer when it
  shouldn't have been added.