md5 for kernel matching
fix all the warning in libbootimage. mostly to with conversions between
strings and pointers which are both valid char*.

The Rule is unsigned char* represents a memory location
char* is the start of a string.
if a variable name ends with the addr suffix it should be classed as a
memory location and only widened when required for example by string comparision functions