default_scope expects a block as its sole argument

fixes #5799
Eagerly load product images and prices using preload.

(i.e. explicitly using a separate query) so the orders are respected even when
the product search is conditioned on an included association.

fixes #5798
Revert recommendation to use modules for extensions.

The current suggestion causes problems in development environment (or any environment where classes are not cached).

When rails autoreloads classes it first undefines them and then redefines them. However, the modules in the `xxx_decorator` files are just re-loaded without being undefined first.  See http://git.io/22TgYQ. That works fine for the `class_eval` approach but not for the include-module approach.

This reverts commits:

- 3f78c436797a3b9b74aef4a9b3504257a93e4e76
- e344325e89a583016782367cb28b413a4628cf75
- 697ace67a5f245510c682e53bfb1b1ffcb14faca

fixes #5801
Improve admin product picker performance.

Fixes #5607