func-attr: clang 3.5 doesn't support alloc_size

The attribute was removed in commit c047507 in the clang repository as it
was never properly implemented anyway. This fixes compiling with clang 3.5.

Fixes issue #429
func-attr: add some extra handy function attrs

The attributes in question are:

- nonnull: specify whether a function argument cannot/may not be null
- returns_nonnull: specify whether a function will not return a null
  pointer (example: xmalloc can't return null, so it should be annotated as
  such). Only available from gcc 4.9 onwards.

Currently these attributes are only supported by gcc.
alloc: xmalloc and xrealloc can't return null

With this annotation/function attribute, we can inform gcc that these
functions never return null, which can save a lot of redundant null checks.
Remove feature HAVE_QSORT

qsort conforms to C99, so we don't need our own version.
remove HAVE_SETJMP_H
remove HAVE_ERRNO
remove HAVE_BCMP
remove HAVE_MEMCMP
remove HAVE_MEMSET
remove HAVE_MATH_H
remove HAVE_INTTYPES
remove HAVE_STDINT
remove HAVE_STDARG_H
remove HAVE_{ISWUPPER,ISWLOWER,TOWUPPER,TOWLOWER}
enable coveralls support
Move simplify_filename from tag.c
Move functions from window.c
Move fix_fname from buffer.c
Move after_pathsep from misc2.c
Move same_directory from misc2.c