General supercell creation
I added a new module (supercells.py) that provides functionality for creating general supercells, in particular supercells of a desired shape and size. There is also a new tutorial on the subject along with docstring style documentation of the relevant functions that has been integrated in the existing documentation (build.rst and tools.rst).
One of the new functions (find_optimal_cell_shape) invokes the scipy.weave module for speeding up the code. As this might not be wanted by everyone I added a pure python implementation (find_optimal_cell_shape_pure_python), which is, however, much slower (say one to two orders of magnitude).