trylock - TryLock implementation for Go

trylock uses unsafe, which is sorta "unsafe", but should work until
sync.Mutex will change its layout (I hope it never will).
The original author of trylock is by LK4D4.
Usage
type LockedStruct struct {
trylock.Mutex
}
storage := &LockedStruct{}
if storage.TryLock() {
// do something with storage
} else {
// return busy or use some logic for unavailable storage
}