Move root + initialization up to `App`

Currently the root detection and intialization code lives in Pliny and uses a
relative path trick to determine where the app's root is. As Pliny will have
to soon be extrated into gem form, this method will stop working.

This pull moves root detection up to the `App` itself, and also pulls 
initialization there as well. This has a nice side effect of making the 
initialization code more transparent and more customizable.