Initialization / new distribution variants

- dist.increment(initialize=True) enables uniform initialization for
  distributions with latent variables
- dist.support returns the support of the distribution if it is sparse
- special cases:
  - PYP -> DP (d=0)
  - SparseDirichletMultinomial uses dict instead of vector