Feature lattice

Implementation includes
- class LatticeNode: represents a single node of a lattice,
- class Lattice: describes a Bravais lattice (stores references to lattice nodes),
- factory routines for creating specific lattices (for convenience).
lat_nodes now declared private, i.e. renamed to __lat_nodes, and added

@property
def lat_nodes(self):
    return self.__lat_nodes