Update in chunks

reduces requirements to ForwardRange
use default MODEL unless explicitly specified
Use ddoc-ed unittest feature
fix Issue 9976 - Needlessly large instantiation depth in std.typetuple algorithms
Make std.conv unittests independent of floating point rounding
Fixed std.bitmanip unit test so that the intended behaviour of checking both endian types is the actual behaviour
fix typo in comment
Merge pull request #992 from monarchdodra/chunks

Update in chunks
Merge pull request #1310 from Diggsey/bitmanip-fixes

Fixed std.bitmanip unit test so that the intended behaviour of checking ...
Fix comment indent and style
Divide template and enclosed struct

The utility templates and functions are not necessary in Tuple struct.
Remove workaround for the compiler bug 4424
Remove unnecessary `length` member

It's automatically forwarded to expand.length through `alias this`.
Use `T.init`
Rename to areCompatibleTuples, and add small fix
Rename `app` to `w`

`w` (==`writer`) is better than `app`(==`appender`).
Use built-in tuple operations
Named-field tuple should be a subtype of unnamed-field tuple.
Remove deprecated Tuple.at member function
Improve member function `slice`

- Add @trusted attribute
- Change parameter types `uint` to `size_t`
- Limit the range of fields by template constraint