Brian Harman wins Wells Fargo Championship