Halfway done with TestRequirement

-Safe refactors made in Requirement.java after tests were written, so I
can keep my sanity and other people can now read the code