discovery: introduce PIC support

The library should be needed by the executable and be loaded this
way already when determining its load address. With 'ldd' we can
determine its absolute path then. With the path we can determine
.init and .fini.

Use a discovery string like this:
3[;gbt][;lib];0x0;0x0;<size>
4[;lib];0x0;0x0;<size>

Then memory allocations are searched in this library only.