Created a Result(Try&) constructor for Result<T>.

Try<T> doesn't have a default constructor and so it's not possible to
have a Try<T> class member variable  unless we initialize it with
Error().

With this patch, we can instead have a Result<T> class member variable
which is initialized to None() and can be assigned a Try<T> type.

Review: https://reviews.apache.org/r/26955
Added functions to manipulate LD_LIBRARY_PATH to os::libraries.

Also added a utility function to expand a library name to a filename
by prefixing "lib" and adding the default extension.

Review: https://reviews.apache.org/r/26903
Replaced ModuleManager::expandLibraryName with os::libraries::expandName.

Review: https://reviews.apache.org/r/26904
Added setup/teardown for module API tests.

During the one-time setup of the test cases, we do the following:
1. set LD_LIBRARY_PATH to also point to the src/.libs directory.
   The original LD_LIBRARY_PATH is restored at the end of all tests.
2. dlopen() examplemodule library and retrieve the pointer to
   ModuleBase for the test module.  This pointer is later used to
   reset the Mesos and module API versions during per-test teardown.

During the tear-down after each test, we unload the module to allow
later loads to succeed.

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