fixup safebool syntax in halo::handle

There was a subtle flaw introduced by using safebool in halo_record,
but defining the handle as a pointer to this -- the pointer also
is castable to bool so it makes mistakes very easy. We replace the
safe bool stuff with a function "valid" of halo_record, and fixup
the places that were supposed to be using this test.

Also move the NO_HALO variable back to the header.

fixes up commit 82c6b98907d9709aef0d23a3846c1e75ac48e1d5
Merge branch 'master' of git://github.com/wesnoth/wesnoth