Implemented the ShipLibrary
- Unforunately since basically every class needs to talk to this class it
  lead to a strange cascading effect where basically every single source
  file had to be updated and now when a GameEngine object is to be created
  it requires a library_filename to work. It may be the case that in the
  future we will require a save/load location as well