Asset pricing with heterogeneous preferences, beliefs, and portfolio constraints