New Issue: Support param folding of use and import statements

17438, "dlongnecke-cray", "Support param folding of use and import statements", "2021-03-19T19:41:24Z"

As a Chapel user, I want support for param folding of use and import
statements so that I can write code that is sensitive to the
movement/renaming of modules like the following:

proc test1() {
  use Version;

  if chplVerison >= createVersion(2, 0) {
    use SomeTwoPointOhModule;
  } else {
    // Import any arbitrary, existing module.
    use List;
  }
}
test1();

Today, trying to compile this code yields:

Test.chpl:6: In function 'test1':
Test.chpl:10: error: Cannot find module or enum 'SomeTwoPointOhModule'

I ran into this problem recently while trying to adjust Arkouda to
silence deprecation warnings in Memory that were introduced
for 1.24.

proc getMemUsed() {
  use Version;
  if chplVersion >= createVersion(1, 24) {
    use Memory.Diagnostics;
    return memoryUsed();
  } else {
    use Memory.
    return memoryUsed();
  }
}

However this didn't work as expected.