Added benchmarks for UUID Scan() and Value()
Added separate method to read bytes, to prevent copying when converting string <-> []byte
Added more benchmarks, and moved out some allocations of benchmark data
Pre-allocate the interface{} instances for benchmarks, to prevent them from polluting the benchmark
Added tests for Marshal-methods
Added linebreaks
UUID.String(): Replaced fmt.Sprintf() with byte-array + lookup-table
gofmt
Added benchmarks for marshal
Replaced make() call with array-literal
Added notes about extra allocations
Inlined UUID.String() in MarshalText() and MarshalJSON()