Changed modules to accept relative path or file name for library name.

Rename "path" in Modules protobuf to "file" since a "path" always
referes to an absolute or a relative path, whereas "file" may refer to a
path or a file name. If "file" contains a slash ("/"), it is considered
an absolute or relative path, otherwise if is considered a file name.
For file name, dlopen() automatically does a standard library path
search to find the absolute path.

Also, return a better error message if an empty module name is provided.

Review: https://reviews.apache.org/r/26529