Remove redundant safety guards in Chemical class

The __init__ function of Chemical class had mostly redundant safety
guards related to adjacency and distance matrix. I removed them as those
matrices are always well defined, once a molecular SMILES was converted
to a molecule successfully.
Correct Schultz index

Calculation of Schultz index was not done properly due to misunderstanding
numpy docs. I corrected the formula and made some minor change in LaTeX code in
the docstring.
Improve decriptors' calculations

The get_descriptors() method of the Reaction class had a long, hard to
maintain list of descriptor calls.

I added an iterator over methods of Chemical class related to
calculating descriptors. It allowed me to replace the long list of
'manual' calls of descriptor methods in Reaction class with a simple and
concise loop.

Additionally, I made the method to exclude a simple compounds having a
single-atom H-depleted molecular graph (e.g. water with its 'O') from
calculations as they adjacency and distance matrices are equal to zero
which confuse many topological descriptors.
Add a rudimentary test to reaction.py

The __main__ block in reaction.py was empty. I added a rudimentary test,
a calculation of descriptors for an arbitrary reaction, to make the
script do something useful when called standalone.
Removing is_published attribute

Reaction class had an attribute 'is_published' used to indicate whether
a given reaction is published (1) or just generated by transforms(0).
It became slightly redundant after introducing 'rxnid' attribute for
storing RX.ID number as unpublished reactions have it always set to
None. Thus I decided to remove it.
Merge branch 'master' of https://github.com/psuresearch/pca

Merging changes form the main repo.