Should I just call a behaviourist?....
My advice would be to call in a reputable professional - try here:
http://www.apbc.org.uk/help/how but whatever you do, make sure the person is suitable qualified and uses modern, kind methods based on an understanding of how dogs learn and their normal behaviour :)
They will work with your vet if necessary and work to find the cause and the treatment. When you went to the vet, did he do any blood tests? Some vets will do what i call a "once over" but not do any further tests. Others will do blood tests and check for the more hidden health problems :)
Usually with an adult dog, a change in behaviour without obvious cause can mean a medical explanation.
I have tiny alarm bells ringing re. the hug from your son - I wonder if it's possible that he actually doesn't like/has never liked hugs, but is now, now he's maturing, able to show this by warning growls... if this is the case, the behaviourist will find this out and still be able to give a treatment programme for you :)
I feel for you as it must be worrying, what breed or cross is he if you don't mind me asking? By the way, don't tell him off for growling - better than a bite! It's just communication, and if you punish growling he may not growl any more but snap or bite instead :)
Meanwhile, avoid stroking/hugging etc until the answer is found.
Best wishes and please do let us know how you get on
Lindsay
x