EvoGP: A GPU-accelerated Framework for Tree-based Genetic Programming