Code style.
Removed most property decorators and protected attributes.
These were mostly not necessary and really just over-engineered design.
Budget period and behaviour refactored into controller classes.
The Budget model uses a factory to create a controller for its period
length. This allows for extension, and avoids storing
PeriodLength instances in the DB when they store no data..
Merge branch 'feature/model_rework' into develop