Separate CKeyStore interface from its basic implementation

And move CCriticalSection cs_KeyStore up from CKeyStore to CBasicKeyStore. 
Also cleanup some dependencies.
This serves as preparation for #5208
Nit: Should be BITCOIN_BASIC_KEYSTORE_H, if you want to use the new naming that was recently introduced in all other headers (not by me ^^).