first publish to working_midpoint branch
config will return entire collection of peerInfo rather that just one
added new constants
abstracted controller using "module" interface
driver uses factory method to create and execute controller
updated uml

added controller, peer, topPeer, etc
added module interface
added module factory
it is not really necessary to use abstract factories
it is easier in java to not use inner classes

difficult to access from outside the outer class (Configuration)
abstracted normal messages
made handshake message its own independent class
created a class that builds choke messages
created a class that creates normal messages
removed some broken code and made it cleaner
made some slight changes to controller

controller now takes id from a method rather than from constructor, not
a huge change
added logger class

stores log data to log file during peer activity
removed some broken code

added serversockets and sockets to create client threads from server
thread
updated controller

added a method to count the number of connected peers
added a method to create servers
added a method to return logger
added a method to add neighbor peers
added some changes to uml diagram