Implement JSON schema for package and database representation

For dealing with changes to how packages and sync databases are being represented in JSON, we need a versioned schema that represents this and can be validated.