Many Changes to Client

1. Rename the client package to 'server'
2. Delete the existing client-cli. I don't think the code is gone yet, but it's all commented out. We're getting rid of the cli altogether and instead using 'termbox'. The new termbox frontend has not been built yet.
3. Added a cli interface to running the server, using the library 'cobra'.
4. Added a bunch of configurable options to running the server, leaving room for a config file reader/manager. That's not in this PR, but it's coming soon. (after wallet facelift)
5. Switched all of the server commands to using RPC, with the exception of the wallet stuff becuase that's getting a facelift anyway. The wallet facelift will be the next PR.

Unfortunately Sia's back to being unusable as of this PR, because we need to get the termbox stuff working (after config file PR). Hopefully all of this will be done by the end of the week.
The name "home" is kinda confusing if this is actually the config directory...

Overall this code feels ugly. I don't see the need for a `homefound` boolean. If the home directory can't be found, that's definitely a panic-worthy error.

I would write:
```go
usr, err := user.Current()
if err != nil {
    panic("could not determine user: " + err.Error())
}
homedir = path.Join(usr.HomeDir, ".config", "Sia")
if err := os.MkdirAll(homedir); err != nil {
    panic("could not create config directory: " + err.Error())
}
```