Generate generalized AO_t load/store/fetch_and_add primitives from template
(code refactoring)

* src/Makefile.am (atomic_ops/generalize-small.h): Append
generalize-small.template to generalize-small.h replacing XCTYPE with
AO_t (and "XSIZE_" with empty sequence).
* src/atomic_ops/generalize-small.h: Regenerate.
* src/atomic_ops/generalize.h (AO_load_acquire, AO_load, AO_load_read,
AO_load_acquire_read, AO_load_full, AO_load_dd_acquire_read,
AO_store_release, AO_store, AO_store_write, AO_store_release_write,
AO_store_full, AO_fetch_and_add_full, AO_fetch_and_add_acquire,
AO_fetch_and_add_release, AO_fetch_and_add, AO_fetch_and_add_write,
AO_fetch_and_add_read, AO_fetch_and_add_release_write,
AO_fetch_and_add_acquire_read, AO_fetch_and_add_dd_acquire_read,
AO_fetch_and_add1_full, AO_fetch_and_add1_release,
AO_fetch_and_add1_acquire, AO_fetch_and_add1_write,
AO_fetch_and_add1_read, AO_fetch_and_add1_release_write,
AO_fetch_and_add1_acquire_read, AO_fetch_and_add1,
AO_fetch_and_add1_dd_acquire_read, AO_fetch_and_sub1_full,
AO_fetch_and_sub1_release, AO_fetch_and_sub1_acquire,
AO_fetch_and_sub1_write, AO_fetch_and_sub1_read,
AO_fetch_and_sub1_release_write, AO_fetch_and_sub1_acquire_read,
AO_fetch_and_sub1, AO_fetch_and_sub1_dd_acquire_read): Remove
generalized primitives (and the corresponding AO_HAVE_x macros) that
exist in auto-generated generalize-small.h file.
Add lock-based implementation of char/short/int_fetch_compare_and_swap

* src/atomic_ops/sysdeps/generic_pthread.h
(AO_char_fetch_compare_and_swap_full,
AO_short_fetch_compare_and_swap_full,
AO_int_fetch_compare_and_swap_full): Implement primitives.
Add generalized atomic and/or/xor operations for char/short/int types

* src/atomic_ops/generalize-small.template (AO_XSIZE_and_full,
AO_XSIZE_and_release, AO_XSIZE_and_acquire, AO_XSIZE_and_write,
AO_XSIZE_and_read, AO_XSIZE_and, AO_XSIZE_and_release_write,
AO_XSIZE_and_acquire_read, AO_XSIZE_or_full, AO_XSIZE_or_release,
AO_XSIZE_or_acquire, AO_XSIZE_or_write, AO_XSIZE_or_read,
AO_XSIZE_or, AO_XSIZE_or_release_write, AO_XSIZE_or_acquire_read,
AO_XSIZE_xor_full, AO_XSIZE_xor_release, AO_XSIZE_xor_acquire,
AO_XSIZE_xor_write, AO_XSIZE_xor_read, AO_XSIZE_xor,
AO_XSIZE_xor_release_write, AO_XSIZE_xor_acquire_read): New template
primitive (code copied from generalize.h for AO_t); define the
corresponding AO_HAVE_x.
* src/atomic_ops/generalize-small.h: Regenerate.
* src/atomic_ops/generalize.h (AO_and_full, AO_and_release,
AO_and_acquire, AO_and_write, AO_and_read, AO_and,
AO_and_release_write, AO_and_acquire_read, AO_or_full,
AO_or_release, AO_or_acquire, AO_or_write, AO_or_read, AO_xor,
AO_or_release_write, AO_or_acquire_read, AO_xor_full, AO_xor_release,
AO_xor_acquire, AO_xor_write, AO_xor_read, AO_xor,
AO_xor_release_write, AO_xor_acquire_read): Remove (since present in
the autogenerated generalize-small.h) together with the corresponding
AO_HAVE_x.
* src/atomic_ops/sysdeps/generic_pthread.h (AO_char_and_full,
AO_char_or_full, AO_char_xor_full, AO_short_and_full,
AO_short_or_full, AO_short_xor_full, AO_int_and_full, AO_int_or_full,
AO_int_xor_full): Implement primitive (and define the corresponding
AO_HAVE_x).
Add generalized CAS primitives of char/short/int size

* src/atomic_ops/generalize-small.template
(AO_XSIZE_fetch_compare_and_swap_acquire,
AO_XSIZE_fetch_compare_and_swap_release,
AO_XSIZE_fetch_compare_and_swap_write,
AO_XSIZE_fetch_compare_and_swap_read, AO_XSIZE_fetch_compare_and_swap,
AO_XSIZE_fetch_compare_and_swap_full,
AO_XSIZE_fetch_compare_and_swap_release_write,
AO_XSIZE_fetch_compare_and_swap_acquire_read,
AO_XSIZE_fetch_compare_and_swap_dd_acquire_read,
AO_XSIZE_compare_and_swap_acquire, AO_XSIZE_compare_and_swap_release,
AO_XSIZE_compare_and_swap_write, AO_XSIZE_compare_and_swap_read,
AO_XSIZE_compare_and_swap, AO_XSIZE_compare_and_swap_full,
AO_XSIZE_compare_and_swap_release_write,
AO_XSIZE_compare_and_swap_acquire_read,
AO_XSIZE_compare_and_swap_dd_acquire_read): New template primitive
(code copied from generalize.h for AO_t); define the corresponding
AO_HAVE_XSIZE_x.
* src/atomic_ops/generalize-small.h: Regenerate.
* src/atomic_ops/generalize.h (AO_compare_and_swap_acquire,
AO_compare_and_swap_release, AO_compare_and_swap_write,
AO_compare_and_swap_read, AO_compare_and_swap,
AO_compare_and_swap_full, AO_compare_and_swap_release_write,
AO_compare_and_swap_acquire_read, AO_compare_and_swap_dd_acquire_read,
AO_fetch_compare_and_swap_acquire, AO_fetch_compare_and_swap_release,
AO_fetch_compare_and_swap_write, AO_fetch_compare_and_swap_read,
AO_fetch_compare_and_swap, AO_fetch_compare_and_swap_full,
AO_fetch_compare_and_swap_release_write,
AO_fetch_compare_and_swap_acquire_read,
AO_fetch_compare_and_swap_dd_acquire_read): Remove (since present in
the auto-generated generalize-small.h) together with the corresponding
AO_HAVE_x.
Remote duplicate definition of test_and_set_acquire in generalize.h

* src/atomic_ops/generalize.h (AO_test_and_set_acquire): Remove
redundant (duplicate) definition.