Anorm result cursor

Replaces previous result `Iterator` (and even before `Stream`) by a `Cursor` trait that allows to work inside a managed context (see `withResult[T](f: Cursor[Row] => T): T`) and iterate `ResultSet` in an immutable way.
Function `metaData` moved in `Cursor` companion, function `withIterator` replaced by `withResult`, class `RowIterator` replaced by `Cursor` trait, function `as` updated to use new `withResult`.