more idiomatic abstract methods

The even more idiomatic way is to use ABCs, but those work differently
in Py2 and Py3, and I wasn't sure if PyStruct targets 3.x
DOC shape=(model.size_psi,), not (model.psi,)
hopefully fix unstable test
set default infernce algorithm for CRFs in base crf class