mdsim/particle: make space dimension mandatory

Conflicting space dimensions between box and particle are a common error
in two-dimensional simulation scripts (with a cumbersome error message
on failed overload resolution). The missing argument "dimension" to
particle() is not noticed in 3D simulations. Thus, we make it mandatory
in any dimension.
packages.mk: add GDB, the GNU project debugger

The installed version on OpenSuSE 13.1 is buggy and crashes when running
on the HALMD binary.
packages.mk: remove '--disable-deprecated-symbols' flag for HDF5

Other tools (e.g. h5py) require these deprecated symbols.
dynamics: add tensor-valued custom correlation functions

In the user script, an additional parameter 'shape' must be given to
specify the extents of the result.

Tensors of general rank are supported by the implementation of
correlation_adapter. The conversion from a nested Lua table to
boost::multi_array of rank > 1 is still lacking, see
halmd/utility/lua/array_converter.hpp.

Move class correlation_adaptor to separate file.
packages.mk: update several packages

Update the following packages to their recent versions:

    Boost C++ (1.56.0)
    Clang (3.5.0)
    GCC (4.9.1)

The patches for Boost C++ still apply smoothly, although the issues may have
been fixed in the meantime in a different way.
lua: fix FTBFS with Boost C++ 1.56

The move constructor of boost::cref has silently been dropped for
compatibility with std::cref:
https://svn.boost.org/trac/boost/ticket/10368

This breaks code such as "cref(v[i])" found in some Lua converters.
Rewrite the for-loops to avoid such constructions. Use std::cref
throughout.
io/logger: add note on deprecated boost::empty_deleter
lua converters: revert to boost::cref

Using std::cref causes a Lua error "Trying to use unregistered class".
The reason is that luaponte (luabind) is C++98 and binds only
boost::cref, see libs/luaponte/luaponte/detail/convert_to_lua.hpp.

The bug was introduced in commit:4b16bd3, which was not properly tested.
This fixes #335919.
doc: update list of tested compilers
potentials: drop unneeded include of Boost.Assign

boost::assign::list_of was used to set default array parameters (e.g.,
the cutoff). This is now handled by the Lua scripts.
mdsim.potentials: move to sub-namespace "pair"

This prepares for the implementation of other potential types, e.g.,
external potentials.

The change breaks basically all simulation scripts, which can be fixed
by replacing "mdsim.potentials" by "mdsim.potentials.pair", etc.
doc: fix Unicode character for apostrophe

cd doc/pdf && pdflatex halmd.tex:

! Package inputenc Error: Unicode char \u8:ʹ not set up for use with LaTeX.

See the inputenc package documentation for explanation.
Type  H <return>  for immediate help.
 ...

l.8973 \emph{HALʹs MD package}
                                is maintained in a public Git repository. \h...
move from boost::array to std::array

As boost::list_of is not compatible with std::array, convert
construction from list_of to C++11 initializer lists.
C++11: move from boost::tuple to std::tuple
packages.mk: make compiler for Boost libraries configurable

The make variable BOOST_TOOLSET can take these values:
    gcc, clang, intel, pgi, ...
packages.mk: drop GNU Parallel

This program is not related to the build or development process of
HALMD.
doc: expand trouble shooting for building Boost C++

Further, update installation targets found in packages.mk.
test: fix strict-aliasing warning

GCC 4.7 emits the following warning:

.../test/integration/validation/thermodynamics.cpp: In member function ‘void validation::test_method()’:
.../test/integration/validation/thermodynamics.cpp:106:58: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

The warning is due to the conversion between halmd::fixed_vector (aka
std::array) and boost::array. In the absence of support for std::array
by h5xx, we resort to the internal read function using raw pointers.
packages.mk: update GCC prerequisites and fix build process

The GCC build process was broken on Centos 6.5 as reported by Sebastian
Leitmann.

Drop CLooG-PPL and PPL, which is not supported anymore by GCC. Use CLooG
and ISL from the GCC webpage instead. Copy GMP, MPFR, and MPC inside of
GCC source tree to avoid issues in detecting the prebuild libraries. (I
didn't do this for ISL and CLooG since GCC emits a warning in this case
about skipped version checks.)
packages.mk: fix GCC build WIP and clean up

The dependency of ISL (a GCC prerequisite) on GMP was missing. Let
"distclean-gcc" clean up also internal prerequisites.