transfer to xunit
adopt lambda for Assert.Throws
re-structure folder and namespace
add license information
abstract common logic in tree bag and hash bag to AbstractMapBag