Renamed Future to Promise, simplified Promise to be closer to spec, moved cancellation to external library
Cleaned up .gitignore