Simplify Settings
Override get_heap_size in PercentStrategy

Setting heap_size in __init__ means any future settings.overwrite calls from subclasses will fail, since the property is already set (Settings.was_set returns True). Set it in get_heap_size instead, so that the changes to max_total made by AdpativeStrategy.__init__ will be picked up and used in the heap size calculation.
Fix tests to use adjusted adaptive totals

Also test use_total with min_total/max_total
AdaptiveStrategy now alters percent

To simplify the logic, AS instances now just
scale *up* the percentage of active RAM (as
specified by `use_total` and `max_total`)
when more memory is available.