[corlib] Fix localized resource loading bug (#14987)

We shouldn't share non-existent resources between resource
managers since different resources can have different localizations.
[Fix] Bugzilla #18182 - ConcurrentQueue<T>.TryPeek() is not thread safe
- in the previous version the IsEmpty could be false, but by time we get
  to head.Next.Value we get an exception since Value is now null
- passes existing test cases, although these are not definitive since
  they don't show threading issue
- would need to adapt System.Threading.Tasks.ParallelTestHelper to allow
  TryPeek() to be called during Enqueue/Dequeue operations to truly
  test this change out
[Fix] Bugzilla #18182 - ConcurrentQueue<T>.TryPeek() is not thread safe
- removed IsEmpty test from TryPeek() since not needed now
Do not crash if path is specified

AssemblyBuilder is not a good class for doing that but simply taking only the file name covers most cases.
The best solution is to rewrite this tool using Mono.Cecil.

FYI AL.exe from .NET is not written in managed because of the SRE limitation
Merge pull request #959 from NN---/patch-4

Do not crash if path is specified
[mcs] Allow to set any metadata version
Merge pull request #956 from ermshiperete/bug-xamarin-14987

[corlib] Fix localized resource loading bug (#14987)
[system] Update mobile sources list
Merge pull request #932 from exony-craigminihan/bugzilla#18182

[Fix] Bugzilla #18182 - ConcurrentQueue<T>.TryPeek() is not thread safe