Make the map monoid more performant for mutable maps

Mutable maps do not perform well with ScMapMonoid. Map1 has n keys Map2 has m keys. The implementation before this change performs in O(n*m) time. After this change, it performs in O(n+m)

- This pull request also resolves an issue with sumOption that the logic revealed. 
- Cleans up some unused imports
- I added a few methods **DifferentTypes to BaseProperties. The methods allow for the use of arbitrary with a different parameterized type for the Monoid. Not sure if this is the best was to accomplish this.