First version of a discrete trait type

This is just for Mk type models -- not xxSSE models that also require
extinction.  There are some changes coming to this though; at the moment
the data type can be resized but I think it makes most sense if it is not
resizable.  That requires some tweaking of the way that default
constructors are used throughout the model code.