improve robustness of automake scripts; reduce warning; replace deprecated macros

== improve robustness of automake scripts ==
 `./setup' will terminate if any command fails
 `./configure' will terminate if `bison' or `flex' is not found

== reduce warning ==
 use the correct libtool macros
   adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac
   adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am
   compiling `benchmark.c' with per-target flags requires `AM_PROG_CC_C_O'

 fix type qualifier warning caused by `parser.y'
   passing 'const char *' to parameter of type 'char *' discards qualifiers

 fix warning of casting int to pointer on 64 bit platform
   solution: passing the address of int to callback instead
     before: pbc_cm_search_d(consider, (void *) D, D, 500);
     after : pbc_cm_search_d(consider,        & D, D, 500);

== replace deprecated macros ==
 replace AC_HELP_STRING   with AS_HELP_STRING
 replace AM_CONFIG_HEADER with AC_CONFIG_HEADERS
 replace AC_PROG_LIBTOOL  with LT_INIT
make setup-script work on OS X

On OS X, libtoolize is prefixed by "g".
Let setup-script looks for "glibtoolize",
if "libtoolize" is not found in $PATH.
not set "-fnested-function" CFLAG on darwin

because nested functions are flattened, and unused CFLAG raises
compiler warnings
[setup] non-empty string even if libtoolize is missing
[automake] print $LEX, $LFLAGS, $YACC, $YFLAGS
[setup] check flex and bison
[automake] explicitly require libgmp
[64 bit platform] cast pointer to same length integer

In the past, we cast 64 bit pointer to 32 bit integer.
Since C99 standard introduced the intptr_t and uintptr_t types,
guaranteed to be able to hold pointers. Now we cast pointers
to same length integer
`
[test] call initfn in test_cmp_0
[test] extra order, neutral, bilinear test

extra test cases:
  test order of random elements
  test equality of group order
  test pairing of neutral element
  test bilinearity
[calculator] directly get function name from fun_t
guarantee gmp library zeroes out memory content
some arg of memset/memcpy should not be NULL
use strdup in pbc_getline

use strdup rather than pbc_strdup. because
 * 1. readline version of this function uses malloc.
 * 2. pbc_malloc called by pbc_strdup may differ from malloc.
here we keep consistency.
[automake] explicit link libm
[guru] use pbc_free() rather than free() in poly_test
use pbc_malloc,pbc_free instead of malloc,free
[memory] guarantee zeroing out memory before freeing elements

  element_free now guarantees zeroing out the memory
[automake] New configure option "--enable-safe-clean"

./configure --enable-safe-clean
  When free any PBC element or GMP mpz_t,
  fill internal memory inside the element by zero

By default, "safe-clean" feature is disabled.
[automake] output compiler (gcc or clang)