Redesigned toNumber/fromNumber API of ByteVector

After the discussion #154, I created this patch to get rid of ```mid()``` operations when parsing integers from ```ByteVector``` and introduce a clean and simple API.
(This will interfere with pull request #156, I won't merge this until it would be merged.)

toNumber() functions look like:
```
uint toUInt32LE(size_t offset) const;
uint toUInt32BE(size_t offset) const;
```

and fromNumber() functions look like:
```
static ByteVector fromUInt32LE(size_t value);
static ByteVector fromUInt32BE(size_t value);
```

toNumber() functions takes an offset so as not to require a ```mid()``` and they don't take a length for disambiguation. It's natural that ```toUInt32LE()``` always requires 32 bits of data as declared in its name. 
toNumber()/fromNuber() functions are separated into little-endian and big-endian versions to remove the ambiguous bool parameter.