Move drawing logic to drawers

Close #1106.
Spacing on if.  Also, This workflow seems really common that 
if (shouldAnimate)
  use animator
else
  use null animator

can we reflect this idea onto abstract plot to not reuse logic?