ArmPlatformPkg/Bds: fall back to Boot Menu when no default option was found

The StartDefaultBootOnTimeout() function assumes that its predecessor
DefineDefaultBootEntries() sets up at least one default boot option,
unconditionally (even if that boot option can't actually be booted later).

With our FindCandidate() logic in place, this is no longer guaranteed. If
FindCandidate() fails, then StartDefaultBootOnTimeout() may dereference
the uninitialized BootOrder pointer.

Prevent this by checking the return value of
GetGlobalEnvironmentVariable(L"BootOrder"). And, if it's not found, don't
even start the countdown, just go straight to the boot menu.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
ArmPlatformPkg/Bds: always connect drivers before looking at boot options

A long standing issue in ARM BDS has been that it can attempt to load a
preexistent, absolute devpath option without first connecting the
necessary drivers and devices, fail, and drop to the boot menu.

Connect drivers and devices unconditionally, before we look at anything
boot option related.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>