Reorganize url creation.

Make build_url extract used parameters from keyword arguments so they
are not sent as the body to create, or as query parameters.
Allow specifying a class level base_url that is used unless one is
specifically provided.
Break filtering function into a decorator as it seems the perfect
usecase and it prevents a dictionary copy.

Fixes: bug 1198772
Change-Id: I6d370ed504c300b9997199f351322e3083650c69