Impementation of a customizable request cycle

Based on ninja.Ninja (which is already in place) but allows you to overwrite almost all aspects of it by creating ninja.Ninja in your own application.