Add LinearMidpointScale to allow setting a custom midpoint