Logger, LoggerFactory: dedupe error/warn/log/debug definitions
Move Logger definition into LoggerFactory.js
LoggerFactory: iterate over `levels` to define error/warn/log/debug
simplify LoggerFactory#print
Media Handler: renderHint local/remote is an (Array of) HTMLMediaElement

This removes one layer of nesting from the invite/accept mediaHint.

Note that <video>s no longer get muted if an <audio> is provided alongside.

Usage (compare with 4096365):

  var session = new SIP.UA().invite('welcome@onsip.com', {
    media: {
      render: {
        remote: [
          document.createElement('audio'), // included to demo array support
          document.createElement('video')
        ],
        local: document.createElement('video')
      }
    }
  });