Refactor driver_hints

Throughout the code-base the Hints class was not actually being used as
a list, as it was previously implemented. Besides this, the limit
"filter" or attribute to filtering, was being included and used in a
completely different way. So what this does is separate the logic to
remove the need of iterating the whole filter list each time we need to
use "limit", and treat it as a separate attribute inside the class.

This in turn also simplifies the use of filters, since now there is no need
to iterate the filters in order to get them and now we just return an
inner variable.

Closes-Bug: #1323770
Change-Id: I0ae2828e85891c9e37f30289af1efc01b9e677c6
Updated from global requirements

Change-Id: I413514eb61579dabac22909e30b8e86aca0b3a0e
Merge "Refactor driver_hints"