Add ByteVector::toUInt24() function

This issue intends to hear some second opinion.

I made the patch #154 to get rid of small-sized ```ByteVector::mid()``` opeartions. I believe that the patch itself is useful, but somehow rough. 
In the patch, ```ByteVector::toUInt()``` has an overload takes ```length``` specifies the data length that will be converted. It sounds meaningless, but I made it because some formats require to handle 24-bit integers. 
However, I now think that it is more straightforward to remove the overload and create special overloads for 24-bit integers like this patch.

I think that it is the clearest:
```ByteVector``` has ```toUInt16(), 24, 32, 64``` and ```toInt16()``` functions and each one of them have only overload like ```toUInt32(size_t offset, bool ostSignificantByteFirst)```. It breaks ABI, so it should be done taglib2 branch.

It is a option to revert the patch to avoid interfering with the work on the version﻿ 1.9.
Which way is better?