Attempt to fix bumptech/palm#24

Messages were named using their stack *depth* so 2 messages of the same
depth collided. This attempt names messages by their full scope -
avoiding collisions while hopefully not breaking other stuffs.
Let's add a test!
Add missing test proto
Merge pull request #26 from schmichael/fix-nested-message-collision

Fix nested message collision
New support for efficient repeated appends

If all you are doing is loading a protobuf, appending a new field, and
saving again, this feature can really save memory use. It doesn't render
all the repeated submessages to python objects. It just modifies the
internal structures.

Here's the output of check_mem.py for a base interpreter load, a normal
append and a fast append (memory use in KB):

    baseline 32748 6876
    normal-append 633364 607288
    fast-append 59092 33344
Roll version number for post-release fix
Build metadata
Add missing dep
0.1.6
Merge conflicts.'
Package imports and nested types handled correctly.
Code generation updates; code cleanup

When generating code for a given proto file, only package definitions for
files imported by that file will be passed to the 'gen_module' function.

Printing improvements.
Code cleanup

Removed debugging statements; update to use new names from parse.py.
Docstrings and comments brought up-to-date; some types renamed for clarity.
Added nesting tests.
Added test for various scope and package corner cases.
Import filtering really works now; code cleanup.
Rolled version; removed unused arguments.
Package qualifiers that refer to the current package now correctly handled.
Moved test outputs to build directory.