lazytry

lazytry aims for lazy data evaluation which may fail.

```rust use lazytry::unsync::LazyTry;

let lazy: LazyTry = LazyTry::new(|| "1".parse());

asserteq!(lazy.force().unwrap(), &1); asserteq!(lazy.force().unwrap(), &1); ```

```rust use lazytry::unsync::LazyTryFn; use std::num::{IntErrorKind, ParseIntError};

let lazy: LazyTryFn = LazyTry::new(|| "a".parse());

asserteq!( *lazy.force().unwraperr().into_err().unwrap().kind(), IntErrorKind::InvalidDigit ); ```

The current code is quite experimental, including unproved use of unsafe (impl Sync), lack of documentation and a weird and incompleted api.