Resource Proportional Software Design Principles to Reduce Propensity for Bloat