added the concept of a 'Transaction'

- this is currently just a named tuple
- should probably be a class or something when we get fancy?
- our parsing is now much fancier