Added simple logger.

" logging methods "
logger.info('info message')
logger.log('info message')
logger.debug('debug message')
logger.warn('warning message')
logger.error('error message')
logger.fatal('fatal error message')

" set logging level, default all "
" all, debug, info, warn, error, fatal, off"
logger.set_level("info")

" adding log writers "
" a log writer must implement "
" log(message:string) "
" get_colorize() bool"
logger.add_log_writer(my_writer)

- EchoLogWriter: writes to the vim echo function.
- FileLogWriter: writes to a file.

Note: file_log_writer uses file_writer and must be manually flushed.
Adds logger support.

Need to get_logger().log(...). No way to avoid
this as the logger variable is script local scoped.

A workaround is to use s:logger.log(...)
Merge branch 'feature/add-logger' into develop