Checking for empty inputs, better names

These are changes to help the user-friendliness of the library and the API. I kept mistakenly trying to construct a curve from empty input (due to an empty---failed---join) and getting out nonsense without any warning or error. After fixing that I got carried away with being fed up with my poor choice of names in 'predicteds' and 'actuals' so I fixed that as well. And a few other things along the way. These are relatively benign changes and I would like to quickly merge them into master so I can merge them into the branch for the main program. @kboyd, what do you think? Any objections?