Fixes for Slice.Concat() and Slice.JoinBytes()

- Slice.Nil.Concat(Slice.Nil |or| Slice.Empty) should Slice.Empty
- Slice.JoinBytes(...) was not respecting the startIndex and count arguments (doh!)
Cleaned up and added more test for Slice and related classes

- Split into several files
- Added tests for a few of the methods that are not covered yet