Feature lattice2

I have addressed the issues. Can you all take another look.Thanks.
Is a user allowed to change `base_vect` and `size` attribute?  Or are these two attributes that shouldn't be changed once a lattice is created?

Currently, this causes problems: 
```
lattice = la.make_square_lattice('lattice', 0.2, (10, 10))
node = lattice.get_node((9, 9))
lattice.base_vect = (9,9,9)
#get_coordinates fails as tries to add arrays of different shapes
print(lattice.get_coordinate(node.id))
```

I am not certain what the best approach would be but I would suggest making them read-only  [properties](https://docs.python.org/2/library/functions.html#property) .  @kemattil or anyone else, what do you think?