Added Shared[A].await(p: A => Boolean)

Implementation & tests are kinda clunky: lots of use of Thread.sleep