Cleaned up the object creation structure and created some additional unit-tests.

The signature of this version is the same as previous, so should be forward compatible.
Unfortunately coordinates do NOT round-trip correctly, if one puts in  00:00:00.59 for the RA
you get back 00:00:00.58 (ie, you loose on 1/100 of second of time) similarly for DEC where
the value loose 1/10 of second.  This error is caused by my hack that avoids having 60.00 appear
as the value in the print.  a better approach is needed.