rework Makefile for standalone building

if this is ever integrated into pam it will be autotools anyways
use ?= and += to better work with distribution's build systems
apply visibility patch by Peter Palfrader
add debug module option and use pam_syslog

also:
* remove some unnessesary comments
* add vim settings for unusual indentation
make Brokencrypt_md5 also broken on little-endian

otherwise broken hashes from big-endian systems won't work
also remove ASM_MD5 #ifndef's, we don't have assembler code here
rework argument parsing

* don't copy pwdfile argument, we don't need to modify it
* replace sizeof() with strlen() as that is easier to understand and the
  compiler can also optimize it away
* expand DEFINE's so we can get rid of the comments
use pam_get_authtok

this also gets it right with use_first_pass
also use the default prompt for the username
rework pwdfile reading

* drop rewind(), we read the file just once
* use getline() to get rid of the fixed-size buffer
* let strsep() also handle the newline
* stop at the first line containing the user instead of using the last
include proper headers for crypt()

this also prepares for crypt_r()
major overhaul

* merge fgetpwnam into pam_sm_authenticate
* handle empty password field
* fix a fd and memory leak if pwdfile opening succeeds but locking fails
* use crypt_r (enabled via USE_CRYPT_R)
* rely on crypt() to handle newer crypt variants (including "good" md5 crypt)
* make bigcrypt and broken md5 crypt optional
* add some const's
replace self-defined uint32 with uint32_t from stdint.h

unsigned int is not guaranteed to have 32 bits
md5.c: fix compiler warnings
overhaul bigcrypt.c

* drop unnessesary variables
* rename variables and define's to be more desciptive
* rotate pointer updates to front of loop
* don't copy key

there was no point in using crypt_r() here, we return our result in a static
buffer ourselves
remove CVS $Id line and static version number