added canGeocode method and relative check

- geocode begins only if canGeocode returns YES
- if location manager fails with location unknow wait for the next event