Make sure to check return values

Without this, and throwing an exception things will crash.
Prevent command cursor results with the original command method.
Added the cursor_allowed flag, so that we can reuse runcommand for cursor-commands too.
Added comments and vim folding lines.
Moved this around a bit.
cursorCommand, step 1.
Moved the error checking to a non-static function.

Also fixed the error codes and use it for cursorCommand.
Allow for special cursor and bson_to_zval options, to force Long -> object

This is necessary because in some cases we need to guarantee that we have an
Int64. For example the cursor ID comming back from a "command cursor" query.
Without this we can't reliably get the correct int64 number, as we can not
allow this to depend on ini settings.
We keep the used connection for each command.

We need to do this as for cursor commands the getMore needs to run against the
same connection as the original command. With this, we can now feed this used
connection directly to the cursor struct as part of "Create fake cursor".
Implement the function that reads the cursor ID from the returned document.

It's by certain an int64, as we forced that earlier.
Rewrite create_fake_cursor and combined all the previous additions.
Added two test case.
Added a warning just to be safe to not overlook this later.
Move strtoll() definition so that it can be used everywhere.
Fixed typo.
Remove superfluous check

(And add missing folding mark)
Refactor the command cursor flag to be part of cursor_options.
Fixed tests, as we now set the correct error code.
This test (and functionality) only works with 2.5.x and later.
We only should force this for command cursors, otherwise we change expected output for normal commands.