Add shared files publisher with test
Add subscriber for downloadable files with tests
Use new subscriber class in main program
Create Add button for adding shared files

Add button opens a dialog where one file can be selected.  Also change
the notification of FileList so that a reference to itself is passed
instead of a list.  This enables listeners to use the domain object
when they are signaled.
Add a publisher that shares our files

When a file is added, publish that file automatically.  For now listen
for files from both ourselves and the background thread.