fix: add logger flushing
fix: store card presence for each cardreader

This is a workaround for linux pcsc implementation when SCardGetStatusChange returns a slightly different set of attached card statuses.
feat: add context storage

According to specification the EstablishContext operation should be performed for each thread which uses cardreader.
It means the handle to the established resource manager context should be unique for each thread.
So adding a ContextManager it is a first step to specification compliance.
feat: establish a new connection for a new thread
fix: add missed context release
feat: add card connections cache