Add protection in case no file is associated to the decl
Fix for ROOT-6964: when headers are to be inlined do not include umbrella

when a header is to be inlined, we do not ask cling to #include it but
we rather pass to it its content. This allows to associate the right
file to the declaration when creating the fwd declaration payload. As a
result, cling is able to remove from the ast the default template
and function arguments in case the real header is parsed afterwards.
Around this change some cleanup of the code was put in place for example
reducing the calls to declare which have an overhead (it is always faster
to declare a string containing N lines of code than to declare N strings
with one line of code each)
When inlining headers make sure to look for the full path