Generating Valid Python Code

This update makes sure palm generates valid Python code for several situations (see the tests in `test.py` for details):

  * When nested messages are referred to from other messages. E.g.:

      ```
      message M { 
        message Q { 
        }
      }
      message W { optional M.Q = 1 }
      ```
  * Package imports will be recognized (though no verification is done that the imported type exists in the package).

  * Palm will always write python source files with valid names (e.g., `foo-bar.proto` becomes `foo_bar_palm.py`).