tests: Do not use deprecated AO_T and AO_TS_T

* tests/list_atomic.template (list_atomicXX): Use AO_t instead of
deprecated AO_T.
* tests/list_atomic.template (list_atomicXX): Use AO_TS_t instead of
deprecated AO_TS_T.
* tests/test_atomic.c (lock): Likewise.
list_atomic: Add makefile rule to test list_atomic.template syntax

* tests/Makefile.am (BUILT_SOURCES, CLEANFILES): Add "list_atomic.o".
* tests/Makefile.am (list_atomic.o): New rule (to verify list_atomic.c
is valid C code).
* tests/list_atomic.template (list_atomicXX): Use "volatile" for "val"
local variable.
* tests/list_atomic.template (list_atomicXX): Define "oldval", "newval",
"ts" and "incr" local variables only if used; cast string literals to
void (to prevent compiler warnings).
* tests/list_atomic.template (list_atomicXX): Use AO_t type for "incr"
local variable instead of C long type.
* tests/list_atomic.template (list_atomicXX): Define "oldval",
"newval", "incr" as statitc local variables, and remove explicit
initialization to zero (to void problems with initialization of these
variables for AO_double_t case if the latter is a struct).
tests: Parameterize list_atomic template with XSIZE

* tests/Makefile.am (list_atomic.c): Substitute XSIZE/XCTYPE for AO_t.
* tests/list_atomic.template (list_atomicXX): Parameterize with XSIZE
and XCTYPE (except for AO_nop and AO_test_and_set).
tests: Add and/or/xor entries to list_atomic

* tests/list_atomic.template (list_atomicXX): Add AO_XSIZE_andXX,
AO_XSIZE_orXX, AO_XSIZE_xorXX invocations.
tests: Add char/short/int/AO_double_t and dd_acquire cases to list_atomic

* tests/Makefile.am (list_atomic.c): Iterate over XSIZE/XCTYPE (in
addition to XX); expand XX also as _dd_acquire_read.
* tests/list_atomic.template (XSIZE_list_atomicXX): Define 'val' local
variable only if used (needed for AO_double_t case).
tests: Fix makefile sed rule for list_atomic

* tests/Makefile.am (test_atomic_include.h, list_atomic.c): Replace
all occurrences of 'XX' (instead of only the first one) on every line.
Support ARMv8 target (gcc/arm)

* src/atomic_ops/sysdeps/gcc/arm.h (__ARM_ARCH_8A__): Detect new macro
(treated same as __ARM_ARCH_7A__).
* src/atomic_ops/sysdeps/gcc/arm.h (AO_ARM_HAVE_SWP): Do not define
for ARMv8 (since SWP{B} obsoleted); add comment.
* src/atomic_ops/sysdeps/gcc/arm.h (AO_compare_and_swap): Add TODO
item (for deprecated IT block containing wide Thumb instruction).
Tests: workaround GCC 4.4.3 warning reported for list_atomic.c 'val'

* tests/list_atomic.template (XSIZE_list_atomicXX): Use "static"
modifier for "val" local variable to initialize it (cannot use direct
assignment to zero because "val" type could be a SIMD vector type if
XCTYPE is AO_double_t) to workaround GCC v4.4.3
"'val' is used uninitialized in this function" warning reported for
AO_load.
Fix ARMv7 LDREXD/STREXD double-wide operand specification (GCC/Clang)

* src/atomic_ops/sysdeps/gcc/arm.h (AO_double_load, AO_double_store,
AO_double_compare_and_swap): Specify that LDREXD and STREXD use 2
adjacent registers (thus preventing Clang3.3 from register allocation
failures leading to "registers may not be the same" or
"even register required" GAS errors).
Fix ARM char/short fetch_and_add and double-CAS operands width (GCC/Clang)

* src/atomic_ops/sysdeps/gcc/arm.h (AO_char_fetch_and_add,
AO_short_fetch_and_add): Use 32-bit int type for "tmp" and "result"
local variables instead of char/short type (resolve Clang3.3 warning
"size being stored is truncated, use a modifier to specify the size"
enabled by -Wasm-operand-widths compiler option); cast "incr"
argument to int to prevent Clang3.2 warning about value
truncation.
* src/atomic_ops/sysdeps/gcc/arm.h (AO_double_compare_and_swap): Swap
assembly code operands ("new_val.AO_whole" and "addr") to prevent
Clang3.3 warning about operand truncation.
Do not use LDREXD/STREXD for Clang3.2/arm (and earlier)

* src/atomic_ops/sysdeps/gcc/arm.h (AO_ARM_HAVE_LDREXD): Do not define
for pre-Clang3.3 (since it does not allocate register pairs for
LDREXD/STREXD instructions properly); add comment.
Update ChangeLog file
.gitignore: Ignore test*.log, test*.trs
(Apply commit 5cce9c5 from 'release-7_2' branch.)

Conflicts:

    .gitignore
.gitignore: Ignore test-driver (generated by autoreconf)
Put autogen.sh to 'dist' package (Automake)

* Makefile.am (EXTRA_DIST): Add "autogen.sh" item.
Remove broken link to INSTALL file from README

* README (Installation and Usage): Remove reference to INSTALL file
(not generated by autoreconf as AM_INIT_AUTOMAKE specifies "foreign"
strictness).
* .gitignore (INSTALL): Remove.
Convert README to Markdown format

* README: Rename to README.md; adjust formatting to follow Markdown
syntax.
Update ChangeLog file
Put README.md to 'dist' package (Automake)

* Makefile.am (dist_pkgdata_DATA): Add README.md item.
[7.4.0]

Bump version to 7.4.0; change policy regarding version numbers

* ChangeLog: Update.
* README.md: Bump version.
* configure.ac (AC_INIT): Likewise.
* src/atomic_ops/ao_version.h (AO_VERSION_MINOR): Likewise.
* src/atomic_ops/ao_version.h (AO_VERSION_ALPHA): Replace to
AO_VERSION_MICRO; add comment.