[basher] Nitpick and warnings:

Warn: Comparison with None performed with equality operators
Warn: Single quoted docstrings
Warn: Assignment can be replaced with augmented assignment
Warn: Remove redundant parentheses
Warn: Function call can be replaced with set literal (set syntax escapes me a
bit so have a look):

----------------------------- Mopy/bash/basher.py -----------------------------
index 15654da..b3a3616 100644
@@ -1523,3 +1523,3 @@ def RefreshUI(self,files='ALL',detail='SAME'):
         else:
-            selected = set([detail])
+            selected = {detail}
         #--Populate
@@ -1831,3 +1831,3 @@ def RefreshUI(self,files='ALL',detail='SAME',refreshSaves=True):
         else:
-            selected = set([detail])
+            selected = {detail}
         #--Populate
@@ -2481,3 +2481,3 @@ def ToggleBashTag(self,event):
         tag = self.allTags[event.GetId()-ID_TAGS.BASE]
-        modTags = self.modTags ^ set((tag,))
+        modTags = self.modTags ^ {tag}
         self.modInfo.setBashTags(modTags)
@@ -2858,3 +2858,3 @@ def RefreshUI(self,files='ALL',detail='SAME'):
         else:
-            selected = set([detail])
+            selected = {detail}
         #--Populate
@@ -4268,3 +4268,3 @@ def RefreshUI(self,files='ALL',detail='SAME'):
         else:
-            selected = set([detail])
+            selected = {detail}
         #--Populate
@@ -4447,3 +4447,3 @@ def RefreshUI(self,files='ALL',detail='SAME'):
         else:
-            selected = set([detail])
+            selected = {detail}
         #--Populate
@@ -4756,3 +4756,3 @@ def RefreshUI(self,files='ALL',detail='SAME'):
         else:
-            selected = set([detail])
+            selected = {detail}
         #--Populate
@@ -7708,3 +7708,3 @@ def OnItemChoice(self,event):
         choiceSet = self.configChoices[item]
-        choiceSet ^= set((choice,))
+        choiceSet ^= {choice}
         if choice != u'Auto':

Chopped off some long separator (dashes) comments.
Added desktop.ini and .dropbox files to gitignore and removed ~/ which was not a
good idea. Use .git/info/exclude but avoid the tilde (shell expanded, duh).
Duplicate code: C/P AliasesPatcher:

Notice very small difference in GetConfigPanel. Docs were copy pasted -
correct that.
Duplicate code in Mod_Export links:

_parser() method and class attributes to unify Export Links Execute()
methods. Notice there are 15 Mod_.*_Export links:
- CBash_Mod_CellBlockInfo violated the naming convention, fixed.
- Mod_Groups_Export does not belong to this group really
- _parser() should maybe be a class attribute

11 Links unified - not unified:
Mod_ActorLevels_Export
Mod_Groups_Export # add it to Mods Links
Mod_Scripts_Export
Mod_SpellRecords_Export
Removed basher import from barb and belt (+ warns/import cleanup):

Notice new bash.bashFrame global introduced to eliminate the basher import
in barb - needs review, not sure if initialized when I set it in bash.
Belt only needed basher.settings -> bosh.settings (in barb too!).

Warnings corrected:
Comparison with None performed with equality operators
Unused local variables
Basher package:

Ripped constants from basher and moved basher.py to basher/__init__.py to be
further split.
Nitpick:
Made scriptText into proper camel case as Pycharm was confused, rightly so.
Corrected the progress dialog title for Mod_ActorLevels_Export.
Merge branch 'utumno-basher-package' into dev:

Under #163
basher.py -> basher/
Review:
- 3fcbe3f87a99bca3f6aa85481697c0e3b073d390: are bashFrame and bosh.settings
properly initalized in barb/belt ?
- 6d654cc16709c0289a7235133c8fe9253a43b959: set literal
_Link tmp class to factor out duplicate code and wx dependencies - FIXME:

Files, File Links and all up to InstallerLink(Link)
FIXME:
File_Duplicate
File_Hide
File_ListMasters
File_Snapshot
File_Open

The data attribute is set in Link.AppendToMenu - so it is not properly set...
TODO: self.title must go! (SQUASH)
InstallerLink(Link) -> InstallerLink(_Link) part I except Installer_Duplicate(InstallerLink):

Traceback (most recent call last):
  File "bash\balt.py", line 2030, in DoItemMenu
    self.itemMenu.PopupMenu(self,Link.Frame,selected)
  File "bash\balt.py", line 2085, in PopupMenu
    link.AppendToMenu(menu,parent,*args)
  File "bash\basher.py", line 9170, in AppendToMenu
    self.help = _(u"Duplicate selected %(installername)s.") % ({'installername':self.selected[0]})
AttributeError: Installer_Duplicate instance has no attribute 'selected'
Installer_Duplicate(InstallerLink):- FIXME:

Traceback (most recent call last):
  File "bash\balt.py", line 2030, in DoItemMenu
    self.itemMenu.PopupMenu(self,Link.Frame,selected)
  File "bash\balt.py", line 2085, in PopupMenu
    link.AppendToMenu(menu,parent,*args)
  File "bash\basher.py", line 9170, in AppendToMenu
    self.help = _(u"Duplicate selected %(installername)s.") % ({'installername':self.selected[0]})
AttributeError: Installer_Duplicate instance has no attribute 'selected'
_initData() - SQUASH:

Edit: # separation of presentation and data TODO move to _Link ?
Another one
FIxup - _enable introduced

Traceback (most recent call last):
  File "bash\balt.py", line 2030, in DoItemMenu
    self.itemMenu.PopupMenu(self,Link.Frame,selected)
  File "bash\balt.py", line 2085, in PopupMenu
    link.AppendToMenu(menu,parent,*args)
  File "bash\basher.py", line 10520, in AppendToMenu
    link.AppendToMenu(subMenu,window,data)
  File "bash\basher.py", line 10416, in AppendToMenu
    InstallerLink.AppendToMenu(self,menu,window,data)
  File "bash\basher.py", line 7745, in AppendToMenu
    menuItem = wx.MenuItem(menu, self.id, self.text, self.help, self.kind)
AttributeError: InstallerConverter_Create instance has no attribute 'text'
TMP: installers copy conflicts comments - broken ?