Refactor database reader
The ultimate goal is to allow the user to add phases before the computation (see
issue #22). This commit refactor the reader to achieve this objective without
duplicating too much code. The parse_<section> methods now takes the JSON root
as an argument and the secondary species takes the list of to fill in. The
change were testes by running the test_database and test_specmicp_adim tests.