CaselessDict keys are now automatically converted to unicode.

Test fixes. Small refactoring and polishing.

I've modified `safe_unicode` function renaming it to `to_unicode`. First, `basestring` includes `unicode` and `str` so first checking if the string is `unicode` and is `basestring` doesn't make sense. Second, it's raising `AssertionError` if the value is not a string.

Also, i've replaced icalendar imports with relative imports.