Refactored local::promise to be standard conformant

It would certainly be more efficient, but the specified effects for `promise` default constructor are to constructs a promise object and a shared state. `promise` is a weird beast like that. Do you suggest delaying the construction of the shared state until it's actually needed?