Making returned sets immutable

Whenever a collection is returned from an object it should be returned
as an unmodifiable collection.  This keeps anyone outside of the object
from modifying the collection in any way.
Merge pull request #28 from bnormsoftware/immutable_transitions

Making returned sets immutable