handle null session
fixed incorrect call chain
 - this causes SDK to use incorrect User-Agent
 - fixed problem where setting header for with replace = false cause error
DeepSeaRequest is now just a plain tool to request
 - DeepSeaRequest now longer attach Authorization header, it's done in DeepSea instead
 - DeepSeaRequest no longer require DeepSeaSession, session is handled by DeepSea
 - DeepSea should throw exception if client try to send request with null access token