Moving non-SWNT specific properties to NanotubeMixin class.

Created a new NanotubeMixin class in the _mixins module.
Moved all property decorator methods that were not SWNT
specific to the NanotubeMixin class.
updating README
adding test module for UnrolledSWNT class
Adding new property decorator methods to UnrolledSWNTMixin

Also adding a new property to the NanotubeMixin class to
return a 4-tuple of the symmetry operations for mapping the
2 atom graphene basis to a nanotube unit cell
Renaming hiddent attr `assume_integer_unit_cells`.

Renaming `assume_integer_unit_cells` to `assert_integer_nz`
updating docstrings
Small updates to generate_unit_cells method.

Updates to implement the `unit_cell_symmetry_params` property
attribute added to the NanotubeMixin class.
renaming `assume_integer_unit_cells` to `assert_integer_nz`
updating unrolled_swnt sub-command argparse arguments
moving `dt` and `rt` property methods to `NanotubeMixin` class
Adding `Lx` and `fix_Lx` parameters to class constructor.

Also removing the `ny` parameter. As graphene is 2D, this enforces
the use of `nx` and `nz` as the parameters to control the
number of unit cells along the unrolled circumference and
the nanotube length, respectively. To "stack" multiple
unrolled layers, set `Nlayer` > 1.
renaming variables to be less technical and more intuitive in meaning
paring back the size of the generated structures for the MWNT tests
Changing `assume_unique_atoms` to `assert_unique_ids`.

Continuing updates to DATAFormatSpec class to support the
full format spec of the LAMMPS data format.