Approximation Rates of Shallow Neural Networks: Barron Spaces, Activation Functions and Optimality Analysis