use new helper read.atomic
breaking change: only the last component of a multi-part extension (e.g., .csv.gz) is used for building the dataformat subclass

YAGNI
new get_objname generic to assist with variable name computation
also store objname in dataformat object
objname holds cleaned variable name
most atomic readers set name, DRY tests (skipping the not-yet-working)
SQL reader sets names
even DRYer, implement PPM and SPSS tests
implement SAS tests
new extension override explicit_extension, for file reader
use explicit objname in file reader

- test for atomic file loaded from .file
don't use with() in test
change test semantics, still skipping tests
Merge branch 'master' into 13-name-atomic
refactor: extract function set_objname
refactor: rename variable
operate in environment
use test_reader instead of test_dataframe for simple instances
support for custom check functions
use test_reader in other non-trivial instances