Towards Building Model-Based Reinforcement Learning Agents That Effectively Adapt And Generalize