Added signal catching support

When a user sends a ^C or SIGINT to the program, it is caught.
The user is then warned that there is unsaved data (not necesarily
true, but a check could be added) and asks to confirm if they would
like to quit.
Added #ifndef to auth.h header, not super useful, but not harmful either
Complete style change to K&R

I changed all the style in the source to K&R style. This includes
next line braces for functions, underscored_names instead of camelCase,
and } else { type of style.

I believe this style looks more readable and appealing to me, and
I see it used plenty in open source projects. So I implemented it in
my own for my own experience.
Added more detailed comments on functions

Except for the debugging functions, all of the functions have
an explanatory comment block. I also fixed a discrepency between
the number of bytes written on .userdata file creation and .userdata
parsing. (Was four bytes on write and one byte on read, both are now
four bytes)
Multiple organizational changes

user_list_init() is now called from main, instead of at the end of
file_setup(). It was going to be called regardless, so I thought that
it would be easier to understand if was added to the main. The warning
on interrupt string was also moved to auth.h
auth.c was not saved before commit, it has since been tested and works so far
New users are now added to userlist

Also, a bug was fixed that was allocating 0 bytes for the
user list. It wasn't giving a seg fault because the pointer
must have been a valid address in the heap. It now allocates
16 bytes for the max number of users. The list is just an
array of User pointers, so this is sufficient.

It also checks to see that the max number of users is not exceeded
when adding new users.
Started file writing implementation

Added write_to_file(), contains an untested method of writing
all userdata stored in memory to a persistent file.

Some test areas to be aware of:

The file opening is untested, but I believe O_WRONLY and O_TRUNC
are the appropriate flags

The User assignment in the first lines of the write loop may be
destructive. This is just from a quick glance, but by incrementing
list pointer in user_reg, the actual pointer could be incremented.
Now, this might not even be a problem, seeing as the function runs
on program close, which means that the data stored in memory doesn't
need to be preserved. (Then again, this may make freeing the alloc'ed
memory more difficult.

More testing to come soon.
Bug fixes to write_to_file()

I redid the implementation in write_to_file() to make a copy of the
User **list in the UserRegister object, and then incremented it each
iteration. This allowed me to dereference the double pointer and use
the arrow notation for the deferenced User *.

I also found some bugs in the old way, where I was trying to deference
a User variable, which would obviously would have been found if I
tested more before I commit.

Some Issues:
The program will recognize the first user saved to file, but does not
recognize further unique users. However, the num_users value is saved
and updates with each user 'added'. This is either a problem in checking
whether a user exists or not or in the writing or reading of the binary
file.
User saving bug fixed

I found an old remnant of when I was only writing the num_user value
as a single byte to the binary file. Once I changed it to 4, everything
is working as it should.

Note:

I left a little bit of debugging printfs just in case I'm having
trouble with reading and writing as I start testing for more edge cases
Changed scanf inputs in password confirmation to fgets to avoid buffer overflow possibilities.
Changed an additional scanf to fgets, and moved a getchar() to deal with newlines
Fixed double account creation bug

A bug that would allow a new user to create a new user under the
name of an already registered user has been fixed. A loop makes
sure that the name supplied does not match any other registered names.

All debugging printf's have also been removed.
Password Authentication!

Finally added support for password authentication for registered users.
This is done by the new authenticate function, which does a memcmp on
the hash of the supplied passphrase and the hash on record. So far
it has been successfully tested.

In other news, find_user() has been changed so that it now returns
the id value of the user it finds a name in common with. This makes
it easier to tell which user object to compare the passphrase hash
with, without creating a new function for that specific need.

This still allows the find_user to act as a type of boolean function,
where now instead of 0 for false, a return value of less than 0 is now
false.
Updated lists of current goals

Seeing as this program can now successfully support multiple users
and password authentication, I am very close to moving it to the Master
branch. I'll be updating the README more when I get close to this.
Compiles with -ansi flag in gcc

You know, if you're into that.
Fixed size of write in fileSetup()
Merged overhaul into master branch