Settings parent child hierarchy

This implements settings hierarchy for editor and view as discussed [here](https://github.com/limetext/lime/issues/197). closes #197
Rather than this, let's have `packet` implement [json.Unmarshaler](http://golang.org/pkg/encoding/json/#Unmarshaler) itself like:
```go
func (p *packet) UnmarshalJSON(data []byte) error {
	return p.marshalTo.UnmarshalJSON(data)
}
```