Add base Promises class. Fix a couple bugs in the promises library. Rename 'observe' directory to 'observable'. Rename 'throw' directory to 'throwable'