Materials compendium fix

I rewrote large portions of the code to fix #610 - sorry, review-ers! On the bright side the actual code is much shorter now and, I think, a little easier to read/understand. However it's possible that there is something subtle in the old code I missed the second time around.

I added a quick test file to check if the output has the right compositions of materials, though I haven't checked the .h5 output. 
The `data_fill_value` goes into the header of the data set, which can only be 64K. However since we have many (~3400) nuclides and their default values the total size of the data_fill_value was 26K which made the header too large, causing a segfault.