Rename validateLength as validateInput.
validateInput does not need to check the minimum or maximum length.
Minor cleanup of ProtocolIterable.
BucketRange and PortRange are now implemented using ProtocolIterable.