Redesign of the challenge route and view.

- The route now uses the challenges ObjectId from mongo in the url
- The directory tree structure in the view is generated from the
  information in the database