Fix custom_range bugs

Here is fix of three bugs with custom_range and Range class:

1. Function ```oscar.apps.offer.custom.create_range()``` don't check for equally custom ranges already added to DB, and IntegrityError will raises (reason is unique fields in Range model).
2. If object of custom range have name with ugettext_lazy then raise InterfaceError in sqlite3 (and some other errors in other DB). Reason is passed proxy object instead of string. ```force_text()``` added.
3. Fix for ```num_products``` which not delegated to a proxy class as documented.

Tests for 1 and 2 is attached.