driver: check for rebind of already bound shader objects

Skip the dirty bit if re-binding already bound shader object.
utils: include the correct header

Fixes build problem with 'dove' driver.
etnaviv: move fence handling to libetnaviv

This makes fence handles into globally increasing uint32_t's
and thus simplifies the handling in the driver, and makes it possible
to compare fence handles to see what happened before.
The scheme emulates a saner kernel API (closer to adreno drm driver)
driver: get rid of want_fence