Change normalizer interface to take the constructor args after being passed through BUILDARGS

This is so users don't need to remember to do it themselves whenever they override normalizer. Also clarified normalizer documentation.
Make normalizer() backwards compatible so that it accepts pre-BUILDARGS arguments