force_kernel: add variant to make_stress_tensor()

Previously, the elements of the vector have been multiplied by
themselves.
forces: add cubic interpolation scheme

This interpolation scheme is the cubic Hermite interpolation scheme for
two and three dimensions. It will be needed for the future tabulated
force module to interpolate the force and potential from a precaculated
lattice of potential energies (and its derivatives).

It currently supports two precision formats, single and double floating
point precision that should be defined by the user.
interpolation/cubic_hermite: add lua module with documentation

Make the cubic hermite interpolation scheme available from lua and
include the documentation of the scheme.
forces: add tabulated_force module

This module provides the possibility to add an external force by
precalculating the potential on a uniform lattice and then using an
interpolation scheme. If the external potential initally consists of
many particles it should reduce the computational cost of force
calculation.

The interpolation scheme is a functor that will be given as a
template argument to the tabulated_force module -- analogue to the
smoothing functors for pair_trunc. The only example (for now) is the
previously added cubic_hermite interpolator.

Because the shear stress tensor is symmetric only for now, all derived
values (as the shear viscosity) will be incorrect.
tabulated_force: add lua module

Add the documentation and lua binding for the tabulated kernel
lennard_jones: Add higher-order derivatives functions

In order to be able to generate interpolation coefficients for the
interpolation schemes, add the higher-order derivative function.
Add helper module to generate the coefficients for an interpolation scheme

In order to simplify the coefficient generation for the interpolation
schemes, tabulated_generator can generate the lattice with the
interpolation coefficients for a given potential.

Currently, only a host implementation is available. But since this
calculations needs to be done only once and coefficients can be stored
and loaded from a H5MD file, this should not be a bottleneck.
lennard_jones: add tabulated_generator instantiations
Add a tabulated_force example

This example shows how to make an external potential using the tabulated
force module. The generate_coefficients.lua script generates the
interpolation coefficients and the potential while the tabulated_force.lua
will load these coefficients and simulate the system.
lua: provide offset_to_multi_index() and multi_index_to_offset()

These functions work identically to their C++ counterparts from
utility/multi_index.hpp and provide a mapping from a multi dimensional
index into an offset and vice versa.
numeric/operators: use ceilf()/floorf() when using float
lua/numeric: add numeric.diag() to return diagonal elements in a matrix
lua/trunc/local_r4: add 'precision' parameter

This parameter lets the user set the floating point number precision of
the local smoothing functor. This is necessary in combination with the
'memory' parameter of the other modules.
cubic_hermite fix index
cubic_hermite: correct sign
cubic_hermite: add 1d instantiation
tabulated_generator: fix sign of force
cubic_hermite: r given as const&
host/tabulated: add inf test
tabulated_kernel: make particle index const