Y Scale domain adjustment algorithm

Add API endpoint to provide custom y scale domain adjustment algorithm based on new x scale domain.

Close #1079.
unless we can come up with an explanation of why the user needs this flexibility, let's just make it a toggle rather than an arbitrary-function API point