cl/cldebug: escape certain chars in string literals
symtrace: escape certain chars in string literals
fa: __print_heap() pseudocall
symcall: minor fixup in tracing of call cache hits
sl/Makefile: force debug build of cl for 'make distcheck'

A debug build of Predator running on top of production build of Code
Listener tends to abort within boost::algorithm::replace_all() on some
versions of Boost.  In particular, this commit allows to pass 'make
distcheck' on RHEL-6 using the distribution-provided Boost package.

A backtrace caught with boost-1.41.0-11.el6_1.2.x86_64 follows...

f0  raise () from /lib64/libc.so.6

f1  abort () from /lib64/libc.so.6

f2  __assert_fail_base () from /lib64/libc.so.6

f3  __assert_fail () from /lib64/libc.so.6

f4  boost::iterator_range<__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::empty (this=0x7fffffffc780) at /usr/include/boost/range/iterator_range.hpp:293

f5  boost::iterator_range<__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::operator __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > (boost::iterator_range<__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::*)() const (this=0x7fffffffc780) at /usr/include/boost/range/iterator_range.hpp:306

f6  boost::algorithm::detail::find_format_all_impl2<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::algorithm::detail::first_finderF<char const*, boost::algorithm::is_equal>, boost::algorithm::detail::const_formatF<boost::iterator_range<char const*> >, boost::iterator_range<__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::iterator_range<char const*> > (Input="test-0001-snapshot", Finder=..., Formatter=..., FindResult=..., FormatResult=...) at /usr/include/boost/algorithm/string/detail/find_format_all.hpp:200

f7  boost::algorithm::detail::find_format_all_impl<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::algorithm::detail::first_finderF<char const*, boost::algorithm::is_equal>, boost::algorithm::detail::const_formatF<boost::iterator_range<char const*> >, boost::iterator_range<__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > (Input="test-0001-snapshot", Finder=..., Formatter=..., FindResult=...) at /usr/include/boost/algorithm/string/detail/find_format_all.hpp:251

f8  operandToStream(std::basic_ostream<char, std::char_traits<char> >&, cl_operand const&) () from /home/kdudka/git/predator/sl/../sl_build/libsl.so

f9  insnToStream(std::basic_ostream<char, std::char_traits<char> >&, CodeStorage::Insn const&) () from /home/kdudka/git/predator/sl/../sl_build/libsl.so

f10 operator<< (str=..., in=...) at ../include/cl/cldebug.hh:58

f11 SymExecEngine::execInsn (this=0x11eb760) at /home/kdudka/git/predator/sl/symexec.cc:560

f12 SymExecEngine::execBlock (this=0x11eb760) at /home/kdudka/git/predator/sl/symexec.cc:656

f13 SymExecEngine::run (this=0x11eb760) at /home/kdudka/git/predator/sl/symexec.cc:728
fa: fix damages caused by prevvious experiments
cl, sl: be more resistant to user errors

If the user sets GCC_HOST to gcc instead of something more specific,
chances are that gcc will resolve to a ccache wrapper.  This would break
everything.
cl/easy: avoid confusing the ccache wrapper when called on empty input

Reported by Jiri Simacek.
sl/cl_symexec: plot pending trace graphs on finish

... not matter if there was main() defined in the analyzed program.
sl/data: include NSPR arena pool to our case studies
test-0401-PL_InitArenaPool: low-hanging fruit
test-0402-PL_ArenaAllocate: fails on unhandled data reinterpretation

... which seems to be a false positive.
symplot: print graph file names even when not in verbose mode
cl/clutil: be less picky when matching atomic types
symproc: check for abstract values when dereferencing an array

Kinda theoretical at this point, but it might have caused problems later...
symproc: support CL_BINOP_BIT_AND over integral constants
plarena-harness: add some models of external functions
symproc: support CL_UNOP_BIT_NOT over integral constants
symproc: support CL_BINOP_{MIN,MAX} over integral constants

This makes test-0402-PL_ArenaAllocate.c finally running!
symtrace: provide location info in node tooltips