Do not use unpark events as part Shared
Do not use unpark events as part Shared

Shared used unpark events internally. However, the way it used it was
not part of the original intention for the feature. The correct way to
manage unpark logic for a future is to use `Spawn`. This commit
re-implements `Shared` to use `Spawn` instead.

alexcrichton/futures-rs