text: Title: guvectorize does not check contiguity, breaks indexing
  Body: numba 0.59.0
  
  - [x] I have tried using the latest released version of Numba (most recent is
    visible in the release notes
    (https://numba.readthedocs.io/en/stable/release-notes-overview.html).
  - [x] I have included a self contained code sample to reproduce the problem.
    i.e. it's possible to run as 'python bug.py'.
  
  I just started working with numba and I'm in awe of the ease of use and the enormous performance improvement! But this one issue had me stumped for quite some time, as it occurred deep inside my code.
  
  ```
  import numba
  import numpy as np
  
  @numba.guvectorize(['void(int64[::1])'], '(n)')
  def foo(arr):
      print('Array:', arr)
      print('Iterated:')
      for i in range(len(arr)):
          print(i, arr[i])
  
  # This one works fine:
  # foo(np.array([1, 2, 3], dtype=np.int64))
  
  foo(np.broadcast_to(np.array([4]), (3,)))
  ```
  
  This prints:
  
  ```
  Array: [4 4 4]
  Iterated:
  4
  0
  32
  ```
  
  I would expect an exception to be raised, because there is no matching signature. The passed array is not contiguous, because it has a stride of 0.
  
  Instead, only the first element is printed correctly; the other two are garbage. I suspect this happens because the array is assumed to be contiguous, so the stride is ignored.