ruby: Fix .new method (RHBZ#1046509).

The .new method was unintentionally broken in
commit 9466060201600db47016133d80af22eb38091a49.

This fixes the .new method and allows it to be called with multiple
parameters, so you can use:

  Guestfs::Guestfs.new
  Guestfs::Guestfs.new()
  Guestfs::Guestfs.new(:close_on_exit => false)
  etc.

For backwards compatibility, Guestfs::create may still be used.

This commit also adds regression tests:

 - Use .new method in regular tests.  (Because this was not done
   before, we didn't catch the breakage.)

 - Test that ::create still works.

 - Test that args can be passed to .new method.
run: Use timeout --foreground option.

If timeout doesn't have this option (RHEL 6) don't use timeout at all.

Attempt to fix RHBZ#1025269.
run: Actually use timeout --foreground option (RHBZ#1025269).

The following commit managed to not actually add the --foreground
option to the timeout command, just test for it.  Add it this time.

  commit 681488877456b83f039dc518861f29ab4e1857f0
  Author: Richard W.M. Jones <rjones@redhat.com>
  Date:   Thu Dec 19 08:21:53 2013 +0000

    run: Use timeout --foreground option.

    If timeout doesn't have this option (RHEL 6) don't use timeout at all.

    Attempt to fix RHBZ#1025269.
(cherry picked from commit e3f72805d108c601280b889692c47d7d825e6079)