The numba_dpex `func` decorator is not cached nor does it properly support specialization. - [x] add caching to `dpex.func` - [x] add specialization to `dpex.func`