Document Model a bit.
Add some more data files.
Moved filtering upwards.
Slice and filter properly to match length of 
context array.
Calculate precision from test.
Add bigrams.
Change how the message passer is initialised with 
observations set.
Move betas to sensible place.
Add functionality to Model for returning shared
distributions.
Only add one direction of the edge to the shared 
sets.
Built and tested the shared edge cache.
Finished and tested the edge-based message passing.
Share data across all edges in chain model.
Add some test code for the Chain model.
Add comment
More work on toy model.
Add some doc strings.
Build much tidier way of generating model data.
Now use Edge objects instead to hold the data 
corresponding to a certain type of edge.
Change message params to be part of MessagePasser.
Move neighbours and num nodes into cache.
Rely more on Cache in impl.
Add more to EdgeModel interface.