problem fixes:

1) Using str() on unicode strings that contain multibyte characters
causes errors.  Test data type before using str()
2) Can't assume utf-8 encoding for input if another encoding was passed
in.  This is only a partial fix for this problem.
3) We have seen identifiers made up of multibyte characters in the CSS
input.  Add rudimentary ability to handle them.
4) In our input, about half the functiosn that use the memoize decorator
exentually will receive an array as a parameter.  Hardened the decorator
to handle that case.  NOTE: no tests have been run to see if I've killed
the efficience and thus made the decorator useless.
5) The @font-face construct requires a 'src' parameter.  Later code
assumes it's there.  Ignore the instance if it doesn't exist.