Promises: Add minimal promise implementation