Adjustments to AsymmetricGridView.setAdapter()

- Removes duplicate definition of setAdapter due to different
 parameter types. It will now throw an exception if the view adapter
 doesn't implement the AsymmetricGridViewAdapterContract interface.

- Removes unused type parameter from AsymmetricGridView

- Creates AsymmetricGridViewAdapterContract which simplifies the
  required interface and makes it more flexible for implementers.