Performance tuning

Added ability in async to cache the values and context so that long
list of callbacks that are going to be getting the same value don’t
have to recreate the asyn object every time.  Also, added execution
path to easily create promises with the state from other promise.  This
is so that a promise does not have to go through the resolution step in
order to get a value that’s already known.