RFC: Added unpack!, to unpack over an existing type.

Usage:

```julia
julia> using StrPack

julia> @struct type TestStruct
           int1::Int32
           float1::Float32
       end
isequal (generic function with 11 methods)

julia> s = TestStruct(-1, 1.2)
TestStruct(-1,1.2f0)

julia> iostr = IOBuffer()
IOBuffer(data=Uint8[...], readable=true, writable=true, seekable=true, append=false, size=0, maxsize=Inf, ptr=1, mark=-1)

julia> pack(iostr, s)
8

julia> iostr.data[1] = 0xfe
0xfe

julia> seek(iostr, 0)
IOBuffer(data=Uint8[...], readable=true, writable=true, seekable=true, append=false, size=8, maxsize=Inf, ptr=1, mark=-1)

julia> unpack!(s, iostr)
TestStruct(-2,1.2f0)
```

I'm finding this useful for a project I'm working on.

This implementation duplicates most of the current `unpack` code, which isn't ideal, but I couldn't see an easy way around this.  Any suggestions?

If you think this is worth merging, let me know, and I'll add tests and docs.