ObservationZone: delete copy constructor/operator

Instead of NonCopyable.
Util/FifoBuffer: allow copying
Config/RegistryKey: delete copy constructor/operator
Config/RegistryKey: add move constructor
Config/RegistryKey: use std::swap() in move operator
GlideRatioCalculator: don't forbid copying
XML/Node: use std::swap() in move operator
XML/Parser: delete unused option APPROXIMATE_PARSING
XML/Parser: add local "length" variables

Don't use "temp_length" for two different purposes.  May allow more
compiler optimisations.
XML/Parser: don't allow CompareTagName(nullptr)

Change runtime check to assertion.
XML/Parser: move all GetNextToken() results to struct NextToken
XML/Parser: remove unused option DUMP_XML_ERRORS
XML/Parser: remove flag "global_error"

If a caller is interested in error information, he shall use the
Results struct.
XML/Parser: use IsWhitespaceOrNull()
XML/Parser: use std::string to remember attribute_name
XML/Parser: eliminate "temp" variables
ObservationZonePoint: remove "current" from SetLegs()

This parameter is redundant, because the ObservationZonePoint already
knows its own reference location.
ObservationZoneClient: forbid copying
{Start,Finish,AAT}Point: update virtual method documentation
TaskPoint: remove redundant attribute "elevation"

We can read this from TaskWaypoint::waypoint.