The #string directive doesn't expand macros

Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=2440

Reported by Martin Stjernholm mast@roxen.com

This works:

    string data = #string "foo.pike";

While this doesn't:

    #define FOO "foo.pike"
    string data = #string FOO;

I think this is inconvenient and inconsistent, since other preprocessor directives, e.g. #if, does macro expansion on their arguments.

It'd be even more useful if you could use combine_path in the argument to
#string, so that it's possible to include a file in the directory of the
program:

    string data = #string combine_path (__FILE__, "../data");