Import eglibc-2.18 nss_files
Rename s/files/altfiles and make standalone

This patch changes the prefixes of _nss_files_* functions to
_nss_altfiles_*, and neccessary modifications to make the module
buildable in a standalone fashion.

It also adds support for #define'ing ALTFILES_DATADIR to specify
a particular user info data files path instead of the /lib default.
Files neccessary for building, README, .gitignore

Adds build support files (configure, Makefile), a README.md file
and Git ignored file patterns (.gitignore).
Makefile: New "dist" target, creates tarballs
Do not create symlink on install

When using the "install" make target, do not symlink libnss_altfiles.so.2
to libnss_altfiles.so: glibc2 and eglibc will directly load the .2-suffixed
shared object without needing the symlink. The .so.1/.so suffixes would be
for supporting glibc1, but this NSS module is not expected to work with such
and older libc. Therefore, the symlink can just be dropped.
Support configurable alternate NSS module name

This makes it possible to pass --with-module-name=FOO to the "configure"
script, so a libnss_FOO.so.2 library is created. This effectively enables
to build modules with different names and data directories from the same
sources.
Fix linking building for 32-bit in a 64-bit host

Links the shared library using -nostdlib, which is safe because the
undefined symbols would be available later on when the shared library
is loaded as a plugin by the libc. Yet, -lpthread is kept to ensure
that the mutex will work as expected.

Also, -as-needed is passed to the linker to avoid including unneeded
dependencies in the ELF header of the shared library.
Add description of environment variables

Write down the environment variables (and their descriptions) that can be
set in the environment prior to the invocation of the configure script.
Those will be shown when running "configure --help".
Notice about configure script ignoring CLI flags

The shipped configure script mimics those created by autotools, but it is
not one, so it seems sensible to warn users about that fact when running
"configure --help"
Convenience script to download original eglibc files
Adapt download script to use svn export instead of viewcvs

This just makes me feel less icky.
Define new ALTFILES_SYMBOL macros to replace CONCAT

The chaining of CONCAT macros was a bit ugly, this cleans up the changes
required to port files from glibc to altfiles.
Correct logic around exporting and using external parsers.

Leaving this macro-glue untouched just happens to work for the mix used
buy the passwd and group types but breaks for others that I am adding.
Replace the existing logic only do 'static' or 'extern' but nothing in
between.
Import more file types from glibc 2.18.

Many of these such as networks, protocols, etc. make a lot of sense for
this module since they are usually never customized and thus have little
need to actually be in /etc all the time.
Compile all new file types, update CFLAGS

Fairly simple compile fixes:
 - Get better warnings (-std=gnu99 -Wall)
 - Add a few more includes and stub macros to compat.h
 - Fix symbol names in file-hosts.c
 - Fix the Makefile's build dependencies for included sources.
Shuffle source files around into directories

This organizes things a little closer to the glibc source and avoids
clutter as I continue to add more things.
Explicitly link to libc.

Previously the library was linked using the -nostdlib flag which made
ldd --verbose look suspicious but everything still worked by virtue of
libpthread dynamically linking to libc. I don't know of any particular
reason for using -nostdlib and the documentation doesn't list it.

http://www.gnu.org/software/libc/manual/html_node/Adding-another-Service-to-NSS.html
Import passwd and group file parsing code.
Strip pwd/grp source down to just the parsers and add to build.

Now the altfiles module no longer depends on _nss_files_parse_*
functions in libc. Depending on those functions wasn't very proper
considering they are declared as GLIBC_PRIVATE.

After this change the only funky symbol from libc that altfiles depends
on is the _res_hconf structure. Unlike the _nss_files functions,
_res_hconf is explicitly declared as part of libc's GLIBC_2.2 ABI so I
feel a bit less dirty depending on it.

This replaces commit d6f2322f.
Merge remote-tracking branch 'origin/pr/1'

Merge changes in pull request #1, and accomodate for the fact that Eglibc is
no longer going to be developed after 2.19, namely:

- Change the "dlfiles" script to "updatefiles", make it download a tarballed
  glibc release and find the source files inside it. This is way faster than
  cloning the whole glibc Git repository.
- Keep support for honoring --libdir= in the configure script and Makefile