Fix bug generate strain for triclinic systems

As reported (with a fix) by John Kendrick - generate_strain.py
always made the angle between the b and c lattice vectors
90 degrees. This means that (at least) triclinic crystals
get distorted in the process of applying a strain to the
cell. This commit fixes this behaviour and introduces some
basic tests that can be run with:

    PYTHONPATH=.. ./test_cell.py

in the Testcases directory (this should probably be hooked up
to the unittest framework at some point). The fixed version
gives the old results for monoclinic crystals (at least, those
in the a // x initial frame).