Refine esky support in setup.py

* Add HAS_ESKY flag based on import tests rather than command line
  arguments.
* Add comments on reasoning for some setup kwargs
* Fix append bug for wmi dependency
* Revert part of e70d70aa75fedb90a6ef774a0131e0f3f2b6e516. Esky uses
  those kwargs regardless of the distribution stack used.
* Remove unused 'libraries' variable
Merge pull request #3108 from FireHost/fix_setup_py_frozen_build

Refine esky support in setup.py
Add fileserver backend docs
Add fileserver backend doc to the toc
Fix #2947
Add state file for keyboard layout
Merge pull request #3113 from techhat/keyboard

Add state file for keyboard layout
Add __virtual__ to keyboard state
Merge pull request #3114 from techhat/keyboard

Add __virtual__ to keyboard state
Add locale (language) state module
Change example to actually use a valid locale
Merge pull request #3115 from techhat/language

Add locale (language) state module
Added check for version string. Previously this state would be true if ANY package version was installed regardless of version specified
Merge pull request #3117 from jacksontj/develop

Added check for version string.
Fix dependency resolution in the overstate

Fix #3111
Fix overstate recursive call mapping references
Make output data cleaner on the eyes :)