travis: check for commits touching external
This still allows merge commits touching that location. The squashed commit produced by git subtree is fine since it does not refer to "external/" (path rewriting is done in the merge commit).
Also fixes various Travis issues.