Double stranded modular-scale function

I added double strand support to the modular-scale function, as requested in #127.  The function behaves as it did before, but when called with a list as its first argument, it uses the first and last values from the list as the basis for the double strand.

This is my first pull request to you guys, so please let me know if something is amiss.  Questions?  Comments?