Implementing Fullerene structure class.

It's useless in its current form. But it can at least be
instantiated and will can now be subclassed by the
FullereneGenerator class.

Also adding a test_fullerene test module and updating the
__init__ module imports and docstrings.
Updating the fullerene data from the Nanotube Site.

Today I noticed that the Nanotube site is reporting a different
calculated energy called the "Total strain energy
(continuum elasticity)" and has replaced the formerly
reported "Total curvature energy."
making N at kwarg and setting default value to 60
Adding new code to the FullereneGenerator class.

Also updating __init__ module imports and adding a new
test_fullerene_generator module.
Adding new attributes `PG` for the Point Group and `Ni`.

Some fullerene isomers are identical in `N` and point group, but
their symmetry is distinguished by some other symmetry element,
with file names distinguished with a "-Ni" number, where
"Ni" is an integer >= 0. Therefore, if an `Ni` is given
to the constructor call, it will be used to filter the
list of fullerene data files to choose from.
Fixing a few bugs in FullereneGenerator and updating tests.
Adding new StructureReader base class.

This class abstracts away the structure format checks
for determining the appropriate class to use for
reading structure data files.
insignificant tweaks
Adding param_units, param_symbols, and param_strfmt dicts.

These dictionaries map attributes to unicode strings for
the attribute variables, unit symbols, and formatspec.
These could be useful for pretty printing verbose output,
for implementing physical units into stdout, etc.
removing unused modules from units subpackage
updating sknano.core.units __init__ module.
Updating sknano.core.units __init__ module docstring
Renaming some attribute variables.
Renaming the StructureFormat class to StructureFormatSpec.

Also updating the subclass names
Starting refactoring of DefectGenerator classes.
adding a CappedNanotubeGeneratorMixin class