Implement a Golang function that accepts two strings as input and returns their concatenation without using any built-in string functions or libraries.

```go
package main

import "fmt"

func concatenateStrings(s1, s2 string) string {
    // Convert strings to byte slices
    b1 := []byte(s1)
    b2 := []byte(s2)

    // Create a new byte slice with the combined length of both input strings
    result := make([]byte, len(b1)+len(b2))

    // Copy the contents of the first string into the result slice
    for i := 0; i < len(b1); i++ {
        result[i] = b1[i]
    }

    // Copy the contents of the second string into the result slice
    for i := 0; i < len(b2); i++ {
        result[len(b1)+i] = b2[i]
    }

    // Convert the result byte slice back to a string and return it
    return string(result)
}

func main() {
    s1 := "Hello"
    s2 := "World"
    fmt.Println(concatenateStrings(s1, s2)) // Output: HelloWorld
}
```
This function works by converting the input strings to byte slices, creating a new byte slice with the combined length of both input strings, copying the contents of the input strings into the result slice, and then converting the result byte slice back to a string.