"Auto" width for items in horizontal

Continuing #549 - I have reworked my proposal to be backwards compatible with existing code using DC.js and added tests for Jasmine. By default autoItemWidth is set to "false" so itemWidth is taken into account when laying out horizontal legends just like it is now. If autoItemWidth is explicitly set to "true", itemWidth is ignored and legend items are laid out according to their actual width, with a gap equal to gap() between them.

Unfortunately my build still fails this test locally (see #550 and #559):

    dc.compositeChart elastic chart axes should set the x domain

But I hope this is an issue completely on my side. All other tests are passed.