* add remote data source
* gather many functions to one module
* replace 'util.pump()' by 'readableStream.pipe(writableStream)'.

Signed-off-by: tonypai <tony77794@gmail.com>