Issue title: Trailing periods are not optional on Unix with wildcards
 Issue body: If a period is followed by a '`*`' or '`.`' it doesn't have to match if it is at the end of the string. '`foo.*`' is the common example. It will match '`foo`', '`foo.`', '`foo.txt`', but not '`foobar`'.

See discussion in #20688, related to #20779

Matching behavior is described [here](https://blogs.msdn.microsoft.com/jeremykuhne/2017/06/04/wildcards-in-windows/).
 Comments: 
 Comment 0: See #20781 for details on how this is fixed.
 Comment 1: @JeremyKuhne, there are still several tests disabled against this:
https://github.com/dotnet/runtime/blob/04f22268efb4434b7cd81e8ae2c3354be99fd4a7/src/libraries/System.IO.FileSystem/tests/Directory/GetFileSystemEntries_str_str.cs#L246-L280
https://github.com/dotnet/runtime/blob/04f22268efb4434b7cd81e8ae2c3354be99fd4a7/src/libraries/System.IO.FileSystem/tests/Directory/GetFileSystemEntries_str_str.cs#L287-L300
https://github.com/dotnet/runtime/blob/04f22268efb4434b7cd81e8ae2c3354be99fd4a7/src/libraries/System.IO.FileSystem/tests/Directory/GetFileSystemEntries_str_str.cs#L307-L344
{'source': 'GithubIssues', 'repo_name_with_owner': 'dotnet/corefx', 'issue_id': 234289412, 'repo_stars': 20466.0}