Include header needed for new operator with GCC

For GCC, the declaration of the "new" operator is included in the <new>
header (as oppossed to the old-style <new.h> one). Include it instead
of hardwiring the declaration.
Move template specializations out of class scope

Acoording to the standard, template specializations must be made at
top-level or namespace-level, and they are indeed not allowed at
class level by stricter compilers like GCC or Clang. Hence, this
patch moves template specializations to the ObjecScript namespace.
Make libedit usage optional in Unix REPL

For the simple Unix REPL program (source/main.cpp), make usage of libedit
optional for history and interactive input. The alternative falls-back to
using the getline() function available in GNU libc and in the libc of most
BSD systems.

Also, the Makefile now allows for easily defining build options, for
example, to build without any option:

  % make DEFINES=''

And, to force usage of libedit:

  % make DEFINES='OS_USE_LIBEDIT'
Merge pull request #19 from aperezdc/gccfixes

Misc GCC/Clang/Unix related fixes