WIP: support multiple wals

yes. if `append` fails, it will `new` then.
```
115 :   w, err := wal.OpenForAppend(walPath)
 116 :   if err != nil {
 117 :   :   if err != wal.ErrNotFound {
 118 :   :   :   return nil, err
 119 :   :   }
 124 :   :   if w, err = wal.New(walPath); err != nil {
 125 :   :   :   return nil, err
 126 :   :   }
 133 :   } else {
 134 :   :   n, err := wal.Read(walPath, 0)
```