Add functionality for clientside

This adds a whole lot of stuff for the client; the client can now open read and write into files. The client will open a new file with the following structure "machineName:client", and the client can modify this as they wish. Writing will require the user to open in write mode, which will try to place an exclusive lock on that file. The client with the file descriptor will have exclusive rights to that file until they close. Users only wishing to read will have a shared lock that will block any writes trying to come in.