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

For the interpolation scheme higher-order derivatives are needed to
calculate the spline coefficients.
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.
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