Add a feature to support download directory recursively

Based on db_list and db_download functions, I add this feature to download whole remote directories to local recursively.