Update in chunks

reduces requirements to ForwardRange
Added @property attribute to TypeEnum.isA
Made EnumType more usable from a switch statement
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
Optimize opAssign for rvalue assignment
fix issue 10017