[enhancement] request colums from client side

Say a request to /api/user returns something similar to this:

    {...
        objects: [
            {"id": 1, "name": "abc", "age": 11},
            {"id": 2, "name": "kbc", "age": 7},
            {"id": 3, "name": "bkc", "age": 17}
        ]..
    }

But you really only wanted 'id' and 'age' fields, this patch allows you to do this:
requesting /api/user?cols=id,age

    {...
        objects: [
            {"id": 1, "age": 11},
            {"id": 2, "age": 7},
            {"id": 3, "age": 17}
        ]..
    }

I though this might help few users (like me) by reducing the data transmitted..
Feedback welcome as this was not tested rigorously and I might have missed something.