Clean up and fix AlRenderer

* Put static objects from gl_renderer.cpp into the class; also, make
  them shared_ptrs, so we don't have to worry about them
! Introduce init_with_context() to AlRenderer (analoguous to
  GlRenderer), so we don't attempt on loading sound data without having
  OpenAL initialized (relevant for tasks 4.1 and 4.2)