Make Element a monad by adding map and flatMap.

This allows using for-comprehensions with Elements.
Add tests for Element#map and Element#flatMap
Merge pull request #2 from p2t2/DEV2.1

Will this screw things up?
Merge pull request #59 from nightscape/monadic_elements

Make Element a monad by adding map and flatMap.
Revert "Merge pull request #59 from nightscape/monadic_elements"

This reverts commit 9af79698836ed683f683453241f68891a722b330, reversing
changes made to 2b423096f93aaf5dedfbc0f66c27748b7383124b.
Added fix for issue 45. Asserting evidence using references will now
assert that elements along a resolvable path can only be values that
result in a valid resolution
Fix for issue #46. Importance sampling now resamples all active elements
in the universe, instead of permanent elements.
Fix for issue #48. Added a function called hasRef to ElementCollection
that returns true if the reference is resolvable on that collection
Remove triangular references to ProvEvidenceAlgorithm
Remove Algorithm mixin
allUtilitiesSeen only used locally
Make Runner protected
Make mhStep private
Reformat
Fix Semiring test by using predefined DirichletParameters.
Also reformatted
Change for loops to while
Resolve deprecation warnings
Resolve deprecation warnings
Resolve deprecation warnings
Resolve deprecation warnings