[Linux][GDB-JIT] Fix bugs in gdbjit that break lldb stepping (dotnet/coreclr#8637)
* Fix .text and .thunk symbols overlapping
When current method calls itself, a __thunk* symbol might be generated with the same address
as the method symbol in .text section. Avoid generating such __thunk* symbol.
* Do not create DWARF line table entries with the same address
* For each HiddenLine assign a zero line number in DWARF
Allow LLDB to to skip HiddenLines when stepping.
* Fix __thunk symbols containing garbage
Fix a bug when __thunk* symbols of previously compiled methods cause
generation of __thunk* symbols for currently compiled method without
filling symbol info.
* Fix missing check for the end of list of compiled methods
* Remove unnecessary check for zero prevLine in gdbjit
Commit migrated from https://github.com/dotnet/coreclr/commit/
d23b78ce50d04e97cc23f997fab8c0ce5faa8726