[Android] make_apk: Make the code handling icons easier to read.

`customize.py` is horrible to read, and `CustomizeIconByDict()` is one
of the biggest offenders.

The first two commits does some clean-up that allows us to get rid of
some checks or moves them to an earlier stage in make_apk.

The last commit rewrites `CustomizeIconByDict()` to make it easier to
follow, mostly by getting rid of `drawable_dict` and all the attempts to
be smart by over-manipulating it.
Thanks for the feedback, this is what I was looking for. I had wanted to make `CustomizeIconByIcon()` be an instance of the problem `CustomizeIconByDict()` solves, but was kind of blocked by the former calling `ReplaceInvalidChars()` while the latter does not. Is that intentional or was it an oversight?

Now let me see if I understood some of your points:

> options.icon can be taken as drawable, if we build app_info.icon with size_name as key instead of size.

Do you mean moving `GetIconSizeName()` to `manifest_parser_json.py` and doing this kind of processing earlier?

> 3. We can now control the behavior when two icons in manifest fit into same category. We can choose the max size in each category in such case.

Hmm, this is slightly tricky and I hadn't thought of that. Is that why that weird `sorted()` call was there? The Chromium manifest spec isn't clear about whether this is done there as well, so I'm not sure it makes sense to do this or not.