Verify arity of messages declared when doubles are defined, as well as messages allow'd/expect'd later

Paired with @alindeman on this one.

There was some more refactoring we wanted to do (specifically pulling this finder,checker,arity logic into it's own place.

Review welcome.

@alindeman will doubtless want to add some notes to what I've written.