Consolidating PDB_DIR/PDB_CACHE_DIR reading

- the PDB_DIR/PDB_CACHE_DIR are now checked on initialisation to be sure that they are writable, if not system's temp dir is used and warnings are logged. Before a wrong/unwritable PDB_DIR would produce a crash
- initialisation of AtomCache, Readers, ChemComp providers, etc is simplified. More consisting reading of the user provided dirs in a single class `UserConfiguration`. Now for PDB_DIR and PDB_CACHE_DIR both system properties (-DPDB_DIR) and environment variables are checked. If PDB_CACHE_DIR not set, it defaults to same as PDB_DIR
- small fixes for issues with directory separations, now using `new File(parentDir, subDir)` to simplify handling directory separations
- a couple of small fixes to avoid unix-specific directory separations
- made sure files go to the right places: pdb, mmcif and pdb1 files go to PDB_DIR; cath, sifts, chem comp go to PDB_CACHE_DIR
- better logging