(#535 with backward compatibility) Introduce *scan with "string" cursor parameter to support unsigned long cursor

It's backward compatibility version of #535, so please see #535 for details.

Changelog
----
* overload all *scan method to change "int" cursor to "string" cursor
* set @Deprecated and leave reason to deprecate and when to remove to
current *scan method
* modify unit tests to make it work with new *scan method