Lcm cleanup

For a long time we've had a slightly broken/redundant set of lcm coordinate frames:
LCMCoordinateFrame - which did java reflection on an lcmtype and automatically created effectively an LCMCoder, and
LCMCoordinateFrameWCoder - where you hand in the coder explicitly (which is the dominant use, especially in the drc code).
I've finally cleaned this up, where there is a single LCMCoordinateFrame class which takes an LCMCoder, or if you pass it in an lcmtype, then it makes an LCMCoderFromType.  

I wanted to do this to clean up some confusion for some new external users.  It is *almost* backwards compatible, since I have a stub LCMCoordinateFrameWCoder which prints a "deprecated" warning and then calls the new interface.  But I did need to add a coordinateNames() method to the java LCMCoder interface, which will need to be populated by derived classes. 

Sending a pull request so that I can get a code review and merge this change through DRC with the guys.