Split the AddBudgetActivity into two activities for adding and editing

This class refactors the `AddBudgetActivity` into two classes: the `AddBudgetActivity` and the `EditBudgetActivity`. They derive from the `AbstractBudgetEditorActivity`, which holds the shared behaviour.

This is done because the `AddBudgetActivity` was getting rather large and had a bunch of noncohesive behavior (it did double-duty for adding and editing and had a tonne of special cases). Also, due to that double-duty nature, a bunch of the methods were really long.

This deals with that. It adds no new features and fixes no outstanding bugs, it just makes our code better.