Support messages inside extensions with nested maps.

Closes #7.