add O3 and -g flags for ruby

Setting any CFLAGS completely disables ruby's default CFLAG settings. On
my mac I have flags like:

    " -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses
    -Wno-long-long -Wno-missing-field-initializers -Werror=pointer-arith
    -Werror=write-strings -Werror=declaration-after-statement
    -Werror=shorten-64-to-32 -Werror=implicit-function-declaration  -pipe"

But Omnibus currently builds ruby with no optimization and no gdb
support:

    "-I/opt/chef/embedded/include -fPIC"
Merge branch 'ruby-O3'
CHEF-4141 - FreeBSD support for ncurses build

Use gmake, not make
CHEF-4141 - FreeBSD support for libedit

Requires modifying vi.c in a similar manner as the patch found in the
FreeBSD ports tree.

See: /usr/ports/devel/libedit/files/patch-vi.c
CHEF-4141 - FreeBSD support for libiconv build

Use gmake, not make
CHEF-4141 - splat
CHEF-4141 - working, needs refactoring badly
CHEF-4141 - Cleanup merge artifacts and typos
don't hard-code commands to gmake

It's easier to just create a `make` symlink to `gmake` in the build
slave. This also follows the same pattern we used for Solaris builds.
remove unused software definitions

`libffi` and `libexecinfo` are no longer needed for FreeBSD builds so
we'll just remove them so they don't bit rot.
format/style changes
remove FreeBSD specific ENV vars and configure commands
remove trailing whitespace
[CHEF-4141] Add comments to the libedit FreeBSD patch
Merge branch 'CHEF-4141'
[CHEF-2576] SmartOS support for Omnibus Chef

The SmartOS 1.8.4 release comes very modern packages, including
GCC 4.7, which is causing most of the trouble.

ncurses patches
===============
Pristine source tarball does not compile out of the box. The patch set
was taken directly from the pkgsrc, here:
http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/devel/ncurses/patches/

Most of the patches are around the configure scripts and makefiles,
adding support for various platforms (openbsd for example), put a few
actually fix up some genuine bugs in the form of mis-matched function
prototypes that are choking the newer GCC.

I figured it was best to take the entire patch set wholesale instead
of cherry picking them to avoid confusion.

Ruby patches
============

rvm-cflags.patch
----------------
(and the configure flag) was taken from the RVM project to work around
a well documented problem with the Illumos fork of OpenSolaris:

http://bugs.ruby-lang.org/issues/5384
https://www.illumos.org/issues/1587
https://github.com/wayneeseguin/rvm/issues/719

Basically, it ships an old libelf.h that is causing problems.

This has apparently been fixed in Solaris 11, but I can't provide
links because the lawnmower ate them.

ruby-openssl-1.0.1c.patch
-------------------------
This patch was generated by me, and is needed to compile against the
newer OpenSSL. Like the ncurses patches from pkgsrc, it just fixes
mismatched function prototypes for the newer GCC.
[CHEF-2576] format/style changes
remove SmartOS specific ENV variables
ensure embedded ncurses wins in the LD search path

Creating this symlink ensures Omnibus-compiled embedded nurses wins when
the linker is looking for libcurses.so.1. In particular we are trying to
fake out the Ruby readline extension by letting -ltermcap resolve to
libcurses.so.1.
`--enable-overwrite` to force symlink from curses to ncurses