Golang Project Structure Best Practices