Add support for custom loggers (controlled via `logger` setting)

CustomLogger extension allows you to define your own logger instance
using +logger+ setting. That logger then will be available
as #logger helper method in your routes and views.

=== Classic Application

To define your custom logger instance in a classic application:

    require 'sinatra'
    require 'sinatra/custom_logger'
    require 'logger'

    set :logger, Logger.new(STDOUT)

    get '/' do
      logger.info 'Some message' # STDOUT logger is used
      # Other code...
    end

=== Modular Application

The same for modular application:

    require 'sinatra/base'
    require 'sinatra/custom_logger'
    require 'logger'

    class MyApp < Sinatra::Base
      helpers Sinatra::CustomLogger

      configure :development, :production do
        logger = Logger.new(File.open("#{root}/log/#{environment}.log", 'a'))
        logger.level = Logger::DEBUG if development?
        set :logger, logger
      end

      get '/' do
        logger.info 'Some message' # File-based logger is used
        # Other code...
      end
    end