Completed updating of achievements

This commit will update achievements that already exist in the database,
for users that already exist in the database. Planned future additions
include the ability to add achievements and users throught the API, but
those are not in the scope of this passing as a major project.

The user checking will return nothing if the user does not exist in the
database.

The API will return 0 if everything worked as planned, and a 1 if
something went wrong. I am planning on expanding this to have meaningful
return values, to indicate the source of the failure as opposed to just
the existance of failure.

The achievement.hs module was added to allow multiple files that would
otherwise need each other to be aware of the achievement datatype,
instead of creating a recursive dependancy hell.

All of the tests were moved to a test directory so as to not clutter up
the root. Also, more tests were added to test the checks that were
implemented in this commit.