Using matching to handle payload types in LinkChk

Since the URI class requires a String Type for init parameter it was
necessary to use matches to enforce it's type and handle exceptions or
invalid cases.
Logger object to save everything published

Created the logger object which uses printstreams to save all the
messages published to a file and print them out.
Fixed exceptions to hopefully print cohearent message when errors occur.
Created Main execution test for PubSub system