add support for multi-threading access to log file with age params

This would add support of multi-thread access to log file from different instances of ruby application.
Also it adds ability to specify 'keep' period for old files which are either 'daily', 'weekly', or 'monthly'.

Try to explain:
suppose you have a rails application. You can start it as rails server, rails console or even rake task. All of them writes log into log/<rails_env>.log file.

If init log with (e.g.) 'daily' age period inside of application config, the problem is as follows:
Rails server creates production.log and uses it. The same for rails console (or rake task).
And new day come up. The server instance renames production.log to production.log.YYYYMMDD and creates new production.log. The console instance of the app would rename production.log again (that is already at current day timestamp) to poduction.log.YYYYMMDD.1 and creates new poduction.log.
The console would write into production.log as should be but! The server instance would write into production.log.YYYYMMDD!