Refactoring library for #1 & #34

As discussed in #1 & #34, this is a rough implementation of the discussed changes:

- Extract new factory methods to work with GUID's
- Extract classes for PRNG
- Extract string/encoding decoding into "Codec" classes (one default impl, one Guid impl)
- Remove final keyword on Uuid class
- Extract 32-bit related exception throwing into subclass of Uuid
- Extract UuidFactory class, and extract all factory methods to that class (static factory methods are kept on Uuid class but simply delegate the call to a UuidFactory)
- Remove @covers from Uuid tests (to get more accurate coverage via XDebug)
- Remove tests covering internal Uuid methods
- Add some unit tests for new classes