FileInputs are only written by ASTWorker thread, therefore it is safe
to read them without the lock inside that thread. It can still be read by other
threads through ASTWorker::getCurrentCompileCommand though.
This patch also gets rid of the smart pointer wrapping FileInputs as there is
never mutliple owners.
this GUARDED_BY comment is a bit misleading.
I'd be more explicit here as it's a bit unusual:
Writes and reads from unknown threads are locked.
Reads from the worker thread are not locked as it's the only writer thread.