Multi-metric packets

This fixes #34 Multi-metric packets.

I added the `functions` variable so I didn't have to repeat all the logic in the `Multi` class. This makes the code a little more difficult to read, but I tried to change as little as possible.