Implement disconnection callback function

Installed disconnection callback function
Use macro for auth callback function instead of writing prototype myself.
Refactored session and sftp mutators for null case.
Added disconnectedWithReason method to destroy resources but not disconnect
Renamed disconnectSocket to _disconnect
move disconnectedWithReason out of public section - it is private
Remove duplicated failure block code
disconnect callback function is not called when disconnect by app
Remove NSLog
Merge pull request #8 from Leehro/disconnect_callback

Disconnect callback