Added a try except to handle unicode in domain lookup. Solves FB:120611

Warns the user of an invalid domain name if unicode is passed into form instead of returning a 500 error.
Solves http://manage.dimagi.com/default.asp?120611
> we could encode the string being passed to `hashlib.md5()` as utf-8 in the `_domain_cache_key` method

This sounds like a good solution. I think this all that's needed:

```diff
- return hashlib.md5(u'cchq:domain:{name}'.format(name=name)).hexdigest()
+ return hashlib.md5(u'cchq:domain:{name}'.format(name=name).encode('utf-8')).hexdigest()
```