Allow user to specify RNG seed explicitly

Previous version of Sample class does not allow to specify explicitly the seed
of the pseudo-random number generator (RNG). Thus it was not possible to select
exactly the same sample from the database other than to read it from an
external file.

I added an option 'rng_seed' which can be pass during class instantiation
ensuring that for the same values of 'rng_seed' that the same sample will be
return, providing that the database has not changed.
Add group storing/retrieving ability to Chemical

Previously Chemical class was not able to store information about functional
groups present on a compound for which it was instantiated. I added data
attribute and method allowing it for storing and finding, if necessary,
those groups.
Add reaction descriptor based on functional groups

So far, reactions have two (constitutional) descriptors, number of carbon atoms
and mass of the reactants. I added a method 'get_group_descriptors' which
returns N-dimensional vector, where N is number of recognized functional
groups, which elements indicate total count of given functional group (sorted
alphabetically) among reaction's reactants.
Allow to use functional group count as descriptor

I made the changes to make possible using the functional group count vector as
a reaction descriptor. Also extended section doing actual PCA to make each step
more explicit.