Fix makefile race when compiling driver.cpp.

The LICENSE, COPYRIGHT, and driver.o recipe did not state their dependencies,
so previously they could all run simultaneously. Note that driver.cpp #include
the LICENSE and COPYRIGHT files from compiler/main/. In most cases this worked
as expected, but on some systems (probably those with slow file systems) the
driver.cpp compilation could start before LICENSE or COPYRIGHT rules were
finished. This resulted in a #include error (could not find file) for the
driver.cpp.

Update object rule, `$(OBJ_SUBDIR)/%.o` to have an optional dependency
specified by `$(OBJ_PREREQS)`. Then update compiler/main/Makefile to declare
OBJ_PREREQS as LICENSE and COPYRIGHT. This ensures the LICENSE and COPYRIGHT
will be processed before any of the object files are built. (It is a big
hammer, but it was the simplest solution I could think of.)
Merge pull request #1072 from thomasvandoren/fix-makefile-race

Fix makefile race when compiling driver.cpp.

The LICENSE, COPYRIGHT, and driver.o recipe did not state their dependencies,
so previously they could all run simultaneously. Note that driver.cpp #include
the LICENSE and COPYRIGHT files from compiler/main/. In most cases this worked
as expected, but on some systems (probably those with slow file systems) the
driver.cpp compilation could start before LICENSE or COPYRIGHT rules were
finished. This resulted in a #include error (could not find file) for the
driver.cpp.

Update object rule, `$(OBJ_SUBDIR)/%.o` to have an optional dependency
specified by `$(OBJ_PREREQS)`. Then update compiler/main/Makefile to declare
OBJ_PREREQS as LICENSE and COPYRIGHT. This ensures the LICENSE and COPYRIGHT
will be processed before any of the object files are built. (It is a big
hammer, but it was the simplest solution I could think of.)

To verify this works, I ran the following on the system that was exhibiting the issue:

```bash
for i in $(seq 0 200) ; do
  echo $i && \
  git clean -dxf main/gen/ main/LICENSE main/COPYRIGHT ifa/ && \
  make -j8 DEBUG=0 WARNINGS=1 OPTIMIZE=1 || \
  break
done
```

r: @noakesmichael
Ignore errors when deleting the executable during testing.

There was already an exception block that was ignoring IOErrors in sub_test
when trying to unlink the executable. Update the except block to also catch
OSErrors.
Use lsof/handle to debug the "Device or resource busy" issues on cygwin32.
Reduced the number of INT_FATAL() cases in cast_code.cpp.
Changed (u)int-to-c_string coercions in cast_code.cpp to use new istrFromUserInt/Uint functions.
Replaced int_value() with v_int64, ditto uint, in compiler/ifa/*
Defuturized param-uint-to-param-string.future
Merge pull request #1074 from thomasvandoren/cygwin32-debugging

Robustify sub_test when os errors occur during unlinking.

Ignore errors when deleting the executable during testing.
There was already an exception block that was ignoring IOErrors in sub_test
when trying to unlink the executable. Update the except block to also catch
OSErrors.

Also add lsof/handle call when "Device or resource busy" error occurs. This
will help debug the core issue that is now swept under the covers (see
above paragraph).
Update chpl_launchcmd to fix pbspro reservations when comm=none.

Previously, chpl_launchcmd assumed qsub created a reservation that worked for
comm=none when no resource list was provided. This is no longer the case, at
least on the internal test system with pbspro used to exercise comm=none.

Update chpl_launchcmd to create a single node reservation using select/place
syntax when comm=none.
Merge pull request #1075 from thomasvandoren/fix-launchcmd-for-pbspro-comm-none

Update chpl_launchcmd to fix pbspro reservations when comm=none.

Previously, chpl_launchcmd assumed qsub created a reservation that worked for
comm=none when no resource list was provided. This is no longer the case, at
least on the internal test system with pbspro used to exercise comm=none.

Update chpl_launchcmd to create a single node reservation using select/place
syntax when comm=none.
Merge pull request #1073 from vasslitvinov/improve--cast_code.cpp

Fixed param casts from 'int(64)' & 'uint(?)' to 'c_string'.

Before, only 32 bits were considered and they were treated as signed.
E.g. param cast uint64->c_string was:

       to->v_string = istr(from->uint_value()); break;

now it is:

       to->v_string = istrUserUint(from->v_uint64); break;

For that I introduced istrUserUint() and istrUserInt()
that are like istr() except:

* they accept "long long unsigned int" and "long long int", resp.
  (I use them for smaller-sized arguments, too)

* their sprintf format is "%llu" and "%lld", resp.


While there:

* Removed a bunch of extraneous cases like this:

   case XXX: INT_FATAL("Illegal case in coerce_immediate switch statement"); break;

  when there was a 'default' case with the same INT_FATAL().

* Replaced uint_value() with v_uint64 and analogously for int64,
  for clarity/consistency. Only in compiler/ifa/*.

* Defuturized param-uint-to-param-string.future.


Reviewed by Tom.