gschem: Use bounding box accessor
gschem: Just invalidate bounds of moved complex object

There is no need to recalculate the bounding box immediately;
world_get_single_object_bounds will do that when required.
Replace flag w_bounds_valid with TOPLEVEL reference

The bounding box stored with an object depends on the TOPLEVEL
context passed to the first call to world_get_single_object_bounds.
Calling this function with another TOPLEVEL object returns the stored
bounding box which may not be valid for that context.

This commit replaces the boolean validity flag with a reference to
the actual TOPLEVEL context for which the bounding box was calculated.
world_get_single_object_bounds checks if this matches the requested
TOPLEVEL context, and if not, recalculates the bounding box.
Don't recalculate bounding box on object updates

Since the bounding box of an object is not read directly any more,
updating it can be deferred until it is actually necessary.
libgeda: Remove recalc functions

- Object bounding boxes are now calculated on-demand by
  world_get_single_object_bounds,
- other functions are discouraged to use the recalc functions directly,
- keeping them around adds extra complexity,
so we might as well remove them.