Refactor memory methods to base class
Fix flake8 issues
Add 'use_active' flag to PercentStrategy-types

Previous commits removed the "active" memory level from
interpolation calculations, but the calculate_heap_size
method was still using "active" internally, leading to an
early cutoff.

With this, the adaptive strategy stops scaling up the
percentage of memory that it uses, but it does keep
using more memory as more is available.

Also improved docs.