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.