No warnings

this eliminates all warnings ans turns on -Werror

This is based on top of the proper-error-codes branch. The diff will shrink once that's merged.