Make readonly collections truly readonly

These methods actually returned mutable collections that happen
to implement the readonly interfaces. User could cast them to
the actual type and add things. I'd rather avoid even that
possibility by making these truly return readonly stuff.
Add custom assert for readonly collection
Merge pull request #394 from octokit/haacked/proper-readonly-collections

Make readonly collections truly readonly