initial work for splitting inputs into transports and codecs

this commit introduces transports and codecs for handling incoming messages
  - transports create a raw, unparsed message
  - codecs transform the raw message into a Message object for further processing

most of the existing inputs already have an alternative implementation based on transports and codecs, but there's still work to do.
there should be no interface change necessary for now until we allow to build custom inputs (eg. syslog over kafka)

some code reorganization was necessary to help with class visibility, expect more changes