Multiple mappings per index

Can define different mappings per index, which use the index_name as
the lookup key.

This is so you can add additional properties in other indexes.

Also refactored the tests to make them easier to read