arc: Fix segfault if path to gas is too long

This patch fixes an error for cases when path to GAS is longer than 160
symbols (or around that value). Problem happens because
arc_process_extinstr_options() function was allocating buffer for 160
characters, then it was trying to calculate some file paths and keep them in
this buffer. Obviously on modern system there is no reason for path to be
limited by 160 characters. And because str*() functions were called without
length check, memory was corrupted that resulted in segmentation faults. As
a side note, this functions hasn't been freeing memory allocated by
make_relative_prefix(), which was causing a minor memory leak.

This patch resolves this by employing more complex logic, that uses length
of string returned by make_relative_prefix() to ensure that allocated buffer
would be long enough to fit full path. That also means that buffer is
allocated in heap, not in stack.

There seems to be some other locations where str*() functions are called
instead of strn*(), however they seem to be on the rarely used code paths,
and do no experience problems. Considering that gas will be rewritten, there
is little reason to spend time on fixing them.

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>