added new versioner

I added a new versioner called "staggered" which does the versioning like the one in owncloud, you keep a different number of files depending how old they are and what interval is in between versions, the intervals are the following:

fisrt hour -> 30sec between versions
next day -> 1 h between versions
next 30 days -> 1 day between versions
next xxx (configurable, default=1 year) -> 1 week between versions

to activate add this to the config insted of `<versioning></versioning>` (or what appears if you have simple versioning active)
``` xml
        <versioning type="staggered">
            <param key="versionsPath" val="/home/alex/dev-syncthing/instance1/test1_versions"></param>
            <param key="cleanInterval" val="3600"></param>
            <param key="maxAge" val="31104000"></param>
        </versioning>
```
all params are optional
versionsPath is the path were your versions should be stored, if it's not set it will be in the repopath in .stversions
cleanInterval is the interval between scanning all versions and deleting ones that are too old or when too many are in a interval (default 3600 s = 1 hour)
maxAge is the maximum time to keep versions, (default 31104000 s =~1 year)

configuration via GUI is not possible yet and changing something via gui can lead to resetting those settings ;)
We could of course declare

```go
func debugf(fmt string, args ...string) {
  if debug {
    l.Debugf(fmt, args...)
  }
}
```

etc per package and still have the `debug` variable around for things like https://github.com/syncthing/syncthing/blob/master/protocol/protocol.go#L358.

But that means some care must be taken, for example we would still need to do

```go
if debug {
   debugln("packet:", hex.Dump(bs))
}
```

to avoid having the quite expensive hex.Dump() run even when debug is disabled.