Data race in ruspiro-singleton
`Singleton<T>` is meant to be a static object that can be initialized lazily. In
order to satisfy the requirement that `static` items must implement `Sync`,
`Singleton` implemented both `Sync` and `Send` unconditionally.This allows for a bug where non-`Sync` types such as `Cell` can be used in
singletons and cause data races in concurrent programs.The flaw was corrected in commit `b0d2bd20e` by adding trait bounds, requiring
the contaiend type to implement `Sync`.