LVM metadata support

This is the format LVM uses to store volume configuration. The mapping is low-level and should be future proof.

There is a level of nesting I haven't been able to remove with dict/list/int/str type annotations, apparently these are required to disambiguate in the put direction.