[WIP] Setting parameters via crossvalidation

Hi,

this is a work-in-progress PR that addresses #44  and partially #50. Progress report:
 - [x] refactored the training code so that it doesn't crash if a trained model is not present 
 - [x] modified trainer so that CRF parameters can be set
 - [x] added a function that calculates accuracy over crossvalidation. This is a bit naive in that I score per-token and pretend multi-token entities do not exits. The proper way to do it would be to use the CONLL NER script, but I feel that would be too much work. My colleague assures me the differences between the correct approach and my hack will not be large for the kind of data we have here. 
 - [ ] perform grid search over parameter values to find good parameter settings
 - [ ] add extra features to improve performance (e.g. suffix might be useful)
 - [ ] comment and update user manual
I see. Why don't you just use usaddress.parse here instead of tag, and then sidestep this multi-token issue?