Improving Scientist Productivity, Architecture Portability, and Performance in ParFlow