Implementation of NSIPTunnel resource and better exception handling

Hi,

I have added NSIPTunnel class and I have reworked the exception handling so instead of having only one Exception I have added a few more and have extended the base exception class NSNitroError to include code so i could better differentiate amongst the exceptions (I will probably expand the list of the interesting ones).
Seems i have done a bad job with multiple commits trying to rebase and squash, but the Files changed diffs looks as it should. if there is a problem can you just copy the modified files over.

Thanks
Aleksandar