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.
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.
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'
Fix and extend artists tag ...

1. artists tag is incorrectly added to a release - now added only to a
track
2. add _albumartists and _albumartists_sort for use in scripts and
plugins.
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
Remove a commented print statement