Fix failures when eng_dyn scans multiple directories

If DIR_ADD is called with multiple directories, and the target file
does not exist in the first directory scanned, the DSO object will still
be considered "loaded" for the next call of DSO_load(...) and cause
subsequent calls to DSO_load(...) fail with the reason code of "already
loaded" even though the load failed.

Additionally, with multiple directories used in eng_dyn, another problem
manifests because the errors pushed onto the error stack will linger even
if another library is loaded successfully on subsequent calls to
DSO_load(...) in the directory scanning loop.

Change-Id: I4ddd24f7b39bd88663e1783f30914870a907acfa
4 files changed