User/logan evans structure

@PalouseRobosub/collaborators

I'm including everyone largely to make sure that this code review process will work for everyone. 

My hope with this review request is that (after some hopefully minor changes) I can merge my changes into the branch feat/communication. I don't think we should merge this into master until someone writes some tests for this. Writing tests (using python's unittest framework) is a task that anyone can take care of, however. After someone writes sufficient tests, we should be able to merge the communication code from feat/communication into master. 

Description of changes:
This change does affect pretty much everyone, however. This is a proposal for the Python socket interface. This does not yet incorporate any changes dictated by the EE/CS discussion on the Sunday meeting (I've coded this so that packets aren't required to be dicts, and 'module_name' is not one of the automatic attributes for the dict.)

I also added some entries to the .gitignore file.

Testing done:
I included some code in robosub/src/util/communication/test that provides some working examples (run them with "python mock_foo.py", etc.) In order to run these examples on your computer, you'll need to install zeromq. 

I have not written any formal tests.