Json decoding

I refactored the code to use the `json.Marshaler` interface instead of `map[string]interface{}`. While the implementation isn't necessarily *that* much prettier, the code actually using the parsed data–such as `print_all_contacts`–is much better.

Do the changes look fine to you?