[Morello][lldb] Fix 'image list'
This is the first patch in a series to fix lldb's support for shared objects in purecap mode.
It makes sure that lldb-server correctly reads and sends the list of loaded shared objects, and also that lldb handles it correctly*. It adds a new method to Process/NativeProcessProtocol for getting the size of a pointer, and makes other fixes along related code paths. This is a bit of a hacky way to go, because the existing method, GetAddressByteSize, has too many uses for me to audit in one go. Ideally we should clean up all the uses and teach GetAddressByteSize about capabilities. We should also make sure we check if we're in hybrid or purecap and act accordingly.
Note that this doesn't fix shared library support in general. Other basic things, such as breaking in a function from a shared object, will be fixed in future patches.
- It's a bit strange that both lldb and lldb-server need to be fixed. Ideally, only lldb-server would read the list of shared objects, and lldb would trust it. Unfortunately, it seems that lldb-server does not send the main-lm node in its library-list-svr4 packet, so lldb decides to read process memory directly to get some of the same info. This should probably be investigated and fixed upstream.