Further work cleaning up protocol layer

More work on swank protocol
1. Improve refactoring parsing to avoid it being done in the main code (converted to case classes early)
2. Increased the protocol tests and separated them for better reporting.
3. Increased the coverage a little more.

Added a random FileUtils test because I was in the area :)