Fixing HHVM's `TooManyArgument` and `BadPassByReference` warnings.

Refs #933.

- `_populate()` does not take an offset as an argument.
  The callee (`MultiKeyRecordSet::offsetGet()`) will work
  as intended nonetheless.

- Assign to a variable and cast before passing to `current()`.
Micro-optimize `is_null()` usage away.

`is_null()` is known to be slower than strict comparison and functionally equal.

The following benchmark script shows `is_null()` taking 7.4207789897919 ms
and comparison taking 0.97491478919983 ms.

```php
<?php

$start = microtime(true);

$a = null;
$b = 'ab';

for ($i = 0; $i < 1000000; $i++) {
//	$a === null;
//	$b === null;
	is_null($a);
	is_null($b);
}

echo (microtime(true) - $start) . "\n";

?>
```
Formatting.
Removing `extract()` usage where only minor changes are needed.

In following cases `extract()` was not removed:

- Many variables are extracted. Removing would cause many variables to
  be rewritten making the code significantly uglier.
- The concept of a method relies on extract(). I.e. overwriting etc.
- It seemed not safe to remove it as it was hard to trace back which
  variables are actually extracted.

References #933.
Updating docblocks; adding missing options.