changes WidgetDrop - moves dynamic method allocation to `before_method` hook
to take advantage of Liquid::Drop lazy loading.
Decorates locations returned. Changes WidgetDrop to accept an array of locations to move the demeter violation out and into the widget class which delegates it down the chain.