Fixed follow behavior, changed data access layer, and made Compose Post work

Now you can follow another user, and the lists on each user's profile will display properly.

I revamped the way that follow activity is stored and accessed (it will be in its own table instead of mushed in with the users table), as well as how users are accessed in the database: by username, not by matching user objects to each other. e.g. when finding all posts by a user, pass in the username, not a user object, as an argument to the getPostsByUser function.

I also enabled the route that allows a user to compose and upload a post, and the user's posts will display on his or her profile.

I also added temporary fake user accounts to make testing the app easier and quicker for now (which means you don't have to "sign up" for two accounts first when testing follow activity, different users' profiles, etc.). There are 2 fake accounts: username "a"/password "a", and username "b"/password "b". You can run the app and immediately log in as either of these users, or create more users.