Implement parSumOption in Semigroup.scala
tests, moved over to returning scala Futures
fix infinite looping, improved tests