PICARD-561: keep collections ordered like on the website

Collections submenu is now completely rebuilt on updates, though i don't think it will cause any issue.
Change color of $noop to be dark gray to better distinguish comments
Follow noop function highlighting over multiple lines
Rename regex variable to bracket_re
Fix Refresh action

```
AttributeError: 'CollectionMenu' object has no attribute 'refresh_action'
```
Add %_trackindex% to fix Picard-527 ...

... for e.g. Vinyl whose tracks are numbered A1, A2, ..., B1, B2, ...
Add NEWS.txt
Hide whatsthis button from dialog boxes

Whatsthis button does not do anything.
Move common code to a new PicardDialog class...

... and make existing dialogs sub-classes of this.
Sort collections list in a similar way than on the website

Not perfect, but simple enough.
No known instances of this problem but ...

... if plugin was located in picard.plugins_fake.smurf then module would
be set to "fake.smurf" rather than None.
Improve script check for number of args.

Remove the need for specifying check_argcount=False if function uses
*args.

expected_args is now a 2-value tuple with lower and upper range of
argument counts.

Also, looks like a bug in calc if there were defaults.

Commented print string left in so correct range can be verified if
needed.
Move and rename default preserved tags

so that they can be used by other modules.
Merge pull request #258 from Sophist-UK/sophist_fix_minor_bugette_in_plugins

Possible minor bugette in plugin.py
Switch to ~musicbrainz_tracknumber
Merge pull request #251 from Sophist-UK/sophist_add_trackid_variable_Picard-527

Add %_musicbrainz_tracknumber% to fix Picard-527 ...
Merge branch 'Sophist-UK-sophist_better_script_functions_num_args_check'
Use namedtuples for repeated access to the same elements

The position of the elements int he tuple have a meaning, this helps
understanding it when reading the code.
Reorder imports
Use None to denote a missing upper bound for script function arguments