merge broadcaster mode with Listener + refactor

- TCP broadcasting is now immediately (without accumulating)

- TCP now broadcasts/receives single events

- removed TCP::Listener class (TCP will be a separate gem soon)

- removed "Unknown"(tcp) file type (always either 'Dir' or 'File')

- use symbols :dir, :file, instead of 'Dir' and 'File'

- explicity set :dir or :file with every change

- added queue method to Listner and use Queue for messages

- added _process_changes to simplify future tests

- removed tests that only prevented refactoring
fix+rework OSX specs and implementation
avoid modifying hash during traversal
get specs working on Linux+VFAT