Separate illegal/reserved identifier conventions

DBSteward refers to both syntactically illegal identifiers and reserved identifiers as "illegal". This changeset separates the two, adding a new --quotereservednames switch, and erroring about specific infractions.