Heterogeneous Agents and Finance