Changes to Location and Bounds classes.

1. The "defined()" function is replaced by "explicit operator bool()".
   Defining an explicit conversion operator is new in C++11 and we
   take advantage of that here. It makes checking whether a Location
   or Bounds is defined just a tiny bit easier and more idiomatic.
2. New valid() functions to check whether locations are inside the
   usual bounds (-180<lon<180, -90<lat<90). This is not done by
   default, because a) it takes time and b) there are nodes in the
   database that are not valid(!) because historical the API didn't
   check this.
3. Move operator<<(ostream, Bounds) from bounds.hpp to ostream.hpp.
   This is where all the output operators are consolidated, so that
   they are not pulled in when not needed.
4. Bounds::extend() now ignores undefined locations.
Fix PBF input to not set node location for invisible nodes.
Fix OPL output for undefined node locations.
Change ! to @ as role marker in OPL format.

The ! is used in some contexts in some shells to retrieve commands from
history. To prevent any clashes, we use @ instead, which is not used in
any shell.
Location and Bounds classes cleanup/doc/test.