Performance optimization - SeqLike
Performance optimization - SeqLike

Big improvements to updated and patch by not creating intermediate collections.

Moderate improvement to sorted by not using extra ArraySeq wrapper.

Small improvements to diff, intersect, and padTo by watching for duplicate or slow operations a bit more carefully.

```
Performance summary (all timings JDK 1.8.0_25 Linux):

method        reason
===========   ===============================================================
diff          1.1x speedup on big seqs - avoid double map lookup
intersect     1.1-1.2x speedup - avoid double map lookup
padTo         avoid multiple calls to length (good if length is slow)
patch         2.4-4.0x speedup - avoid intermediate collections
sorted        1.2-1.5x speedup - use array directly
updated       3.5-9.6x speedup - avoid intermediates (but children override)
```

martijnhoekstra/scala,martijnhoekstra/scala,jvican/scala,jvican/scala,scala/scala,jvican/scala,martijnhoekstra/scala,felixmulder/scala,felixmulder/scala,lrytz/scala,felixmulder/scala,shimib/scala,scala/scala,martijnhoekstra/scala,slothspot/scala,felixmulder/scala,scala/scala,martijnhoekstra/scala,lrytz/scala,jvican/scala,felixmulder/scala,scala/scala,scala/scala,slothspot/scala,lrytz/scala,slothspot/scala,shimib/scala,slothspot/scala,scala/scala,jvican/scala,martijnhoekstra/scala,felixmulder/scala,slothspot/scala,shimib/scala,lrytz/scala,slothspot/scala,lrytz/scala,shimib/scala,jvican/scala,jvican/scala,lrytz/scala,shimib/scala,shimib/scala,slothspot/scala,felixmulder/scala