Do lazy allocation of CodeLocation's private pointer.

Objects created using the default constructor are always overwritten
with a new one, so we do not need to create the private pointer for
those. This actually has a measurable effect, since there are a lot
of default-initialized CodeLocation objects (e.g. each item has one).

Change-Id: Ice53242cd22b4f2ac883bb29f6f186f287a455d6
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>