function done() {
        count--;
        if (!count) {
            callback && callback();
        }
    }
@param {string} path=''
@param {Object} source=animatable
@param {Object} target
@param {number} [time=500]
@param {number} [delay=0]
@param {boolean} [reverse] If `true`, animate
       from the `target` to current state.

@example
 // Animate position
 el._animateToShallow({
     position: [10, 10]
 })

 // Animate shape, style and position in 100ms, delayed 100ms
 el._animateToShallow({
     shape: {
         width: 500
     },
     style: {
         fill: 'red'
     }
     position: [10, 10]
 }, 100, 100)