func FetchFromFile(filename string, limit int64) ([]byte, error) {
	fp, err := os.Open(filename)
	if err != nil {
		return nil, err
	}
	defer fp.Close()
	if limit > 0 {
		return ioutil.ReadAll(io.LimitReader(fp, limit))
	}
	return ioutil.ReadAll(fp)
}
FetchFromFile fetch data (with limit) from an file.
if 'limit' is greater then zero, fetch stops
with EOF after 'limit' bytes.
package data
import (
	"io"
	"io/ioutil"
	"net/http"
	"os"
	"strings"
)
func Fetch(uri string, limit int64) ([]byte, error) {
	if strings.HasPrefix(uri, "http") {
		return FetchFromURI(uri, limit)
	}
	return FetchFromFile(uri, limit)
}
func FetchFromURI(uri string, limit int64) ([]byte, error) {
	res, err := http.Get(uri)
	if err != nil {
		return nil, err
	}
	defer res.Body.Close()
	if limit > 0 {
		return ioutil.ReadAll(io.LimitReader(res.Body, limit))
	}
	return ioutil.ReadAll(res.Body)
}