Ensure equality comparisons work for Source objs

Implement functions eql? and hash as they are required for proper evaluation of functions like uniq.

This addresses the issue found in https://github.com/rodjek/librarian-puppet/issues/31 and https://github.com/rodjek/librarian-puppet/issues/35