[NEW] Allow a non-main entry function.

Before this update, the compiler enforces the existence of a function called
"main", because

1) Otherwise, all functions are deleted in Dead Function Elimination
   (IPA_Enable_DFE is turned on by default), and

2) The OpenCL backend inserts clInit to this main function.

Now we want to add support for compiling library code, i.e., when the main
function does not exist.

The first issue can be resolved by simply disabling DFE. An alternative would
be to mark a non-main function, provided by the user, as
IPA_NODE::Is_Externally_Callable. This non-main function must in turn call all
other externally callable functions in the source files. This approach is too
messy.

The second usage of main is not really an issue. If there is no main function,
the clInit call is not generated anywhere and must be invoked externally.

We add a command-line option -E<entry_name> to mark a non-main function to be
the entry point, which will contain the clInit call in the generated code.
This is achieved by:

1) Adding an internal option to the IPA module: -IPA:entry in config_ipa.*,
   and updating the hicuda driver script to use this option,

2) Replacing explicit references to "main" in IPA to
   IPA_HC_Entry_Function_Name, which is set by the new option.

3) Removing a special treatment for printing the name of the main function in
   st2c.cxx.

A regression test case HTF014 is added.
[FIX] Removed a temp file in a regression test.
Merge branch 'davidtyh'
[NEW] Allow a non-main entry function.

Before this update, the compiler enforces the existence of a function called
"main", because

1) Otherwise, all functions are deleted in Dead Function Elimination
   (IPA_Enable_DFE is turned on by default), and

2) The OpenCL backend inserts clInit to this main function.

Now we want to add support for compiling library code, i.e., when the main
function is not present.

The first usage of main can be resolved by simply disabling DFE. An
alternative would be to mark a non-main function, provided by the user, as
IPA_NODE::Is_Externally_Callable. This non-main function must in turn call all
other externally callable functions in the source files. This approach is too
messy.

The second usage of main is not really an issue. If there is no main function,
the clInit call is not generated anywhere and must be present externally.

For convenience, we add an optional command-line argument -e <entry_name> so
that the user can mark a non-main function to be the entry point. The only
consequence of this action is that, in the generated code, the entry point
will contain the clInit call. This is achieved by:

1) Adding an internal option to the IPA module: -IPA:entry in config_ipa.*,
   and updating the hicuda driver script to use this option,

2) Replacing explicit references to "main" in IPA to
   IPA_HC_Entry_Function_Name, which is set by the new option.

3) Removing a special treatment for printing the name of the main function in
   st2c.cxx.

A regression test case HTF014 is added.
[FIX] Removed a temp file in regression test HTF004.
Merge branch 'davidtyh'
[NEW] Added a script that creates a regression test.
[NEW] Added another regression test for non-main entry.

HTF015 tests a matrix multiply library routine without main. A dllinit
function is provided in the source code and 'dllinit' is specified as an entry
point at hicuda command line. In the generated OpenCL code, dllinit should
call clInit.
Merge branch 'davidtyh'