Ben Shelton beat fellow American Frances Tiafoe in three sets to win the US Men's Clay Court Championship in Houston.