An Exploration of the Adaptive Functions of Dreams and Empirically-Based Methods of Dream Interpretation