Bugfix: _first now preserves type in empty collections

Previously, if you passed an empty Collection into _first, the result
would be the untyped QNone, which could cause somewhat mysterious
downstream errors from functions expecting a particular Type.  _first
now preserves the PType of the received Collection -- yay, stronger
typing!