A handful of additions, and a bunch of changes

I added a function to get budgets, and a function to populate accounts with the bit of detail at the top of the transaction page.

I also significantly changed the code structure ;) I made a class in the module for that can be instantiated and have the different methods called.  I left functions for backward compatibility but I don't know if this is how you want it or not.  If you deny the pull request I won't be offended, but since I did add functionality in addition to the structural changes I wanted to make sure I submitted them back.