Created the Structure.test_bug_21522_master_record_atom_count system test.

This is designed to catch bug #21522 (https://gna.org/bugs/?21522), the structure.write_pdb user
function creating an incorrect MASTER record.  This hence also catches bug #21520
(https://gna.org/bugs/?21520), the failure of the structure.write_pdb user function when creating
the MASTER record due to too many ATOM and HETATM records being present.

The test simply creates to structural models, adds one atom, and writes out a PDB file, checking its
contents.
The structure.write_pdb user function can now handle a file instance for the file argument.

This is for the Structure.test_bug_21522_master_record_atom_count system test, to allow a dummy file
object to be used.  This can also be useful for power users.
Small bug fix for the new Structure.test_bug_21522_master_record_atom_count system test.
Fix for bug #21522 (https://gna.org/bugs/?21522) and bug #21520 (https://gna.org/bugs/?21520).

These bugs are the structure.write_pdb user function creating an incorrect MASTER record and the
failure of the structure.write_pdb user function when creating the MASTER record due to too many
ATOM and HETATM records being present.

The counts for the ATOM, HETATM, and TER records are now only for a single model, rather than being
the sum for all models together.
Created the lib.geometry.vectors.unit_vector_from_2point() function.

This is used to quickly calculate the unit vector between two points.
The lib.structure.represent.rotor.rotor_pdb() function can now handle multiple rotors.

Previously this function would fail if called twice with the same structural object.
Added the has_molecule() method to the relax internal structural object.

This is used to quickly check if a molecule name already exists in the structural object.