Correct extensions parsing.

Two problems were plaguing equality testing:

* `ProtoFile` had a ternary operator improperly scoped which resulted in precedence problems. As a result types, services, and public dependencies were only being compared when the package was not null.
* `MessageType` was not including the list of extensions in its equals check.

@swankjesse @danrice-square