Re-implement state save/restore functionality in gnc_tree_view

The new implementation uses the gnucash metafile in .gnucash/books
to save gui state for any page that is based on gnc_tree_view.

Think Account Hierarchy, Budgets, Vendor/Customer/Employee overviews.
Each of these sets a unique name for a state section that the tree view
will use to store column width/visibility, sort column, sort order.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@23351 57a11ea4-9604-0410-9ed3-97b8803252fd
Remove function that no longer adds value

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@23352 57a11ea4-9604-0410-9ed3-97b8803252fd
Fix crash when deleting budget

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@23353 57a11ea4-9604-0410-9ed3-97b8803252fd