Create an array of categorical variable and get the logp

Couple of things here:

  1. RV.logp accept a dictionary as input, the dictionary should have the same structure as model.test_point (key and usually shape)
  2. The vector p is not normalized - it should be constrained to sum to 1
  3. The output of the categorical should be 1 dimension less than the parameter p, not sure if it is intensional that x has the same shape as p here but you should be careful about that.