text: Title: Refactoring: commands cache
  Body: We need to refactor commands_cache:
  
  * Do not create one `_cmds_cache` list based on aliases and list of files from PATHs because any change will force rebuilding the cache. Implement layers approach instead of this. Aliases - first layer, files - second layer. Now you can update first or second layer without rebuilding everything. The get function just overlap layers on the fly to extract single row.
  
  * Use list of files from Windows/System32 as a permanent layer and do not re-read it. The System32 diretory is huge and persistent.
  
  
  ## For community
  ⬇️  **Please click the 👍 reaction instead of leaving a `+1` or 👍  comment**
  