Portfolio Optimization via Generalized Multivariate Shrinkage