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).
@kemattil ,  if you are referring to my most recent comment about, then i think everything is fine.  your comment that preceded that cleared things up:
> Ok, now using _lat_nodes (i.e. with a single trailing underscore) and removed the associated property.

I think I made my comment directly afterwards but before I had seen your comment. **sorry about that.** 

I was concerned about users using *lat_nodes* to change the Lattice instead of using the the methods defined for ABCLattice ( get/update etc)