Use MaxInt instead of MaxInt64 for ints

This is causing an integer overflow on 386 go builds, because ints are
int32 and not int64 on this platform.
diff --git a/match_test.go b/match_test.go
index c594eb5..fc2adc6 100644
--- a/match_test.go
+++ b/match_test.go
@@ -2,7 +2,6 @@
 
 import (
 	"fmt"
-	"math"
 	"testing"
 )
 
@@ -110,7 +109,7 @@
 	assertPath(t,
 		"$[123:]",
 		buildPath(
-			newMatchSliceFn(123, math.MaxInt64, 1),
+			newMatchSliceFn(123, MaxInt, 1),
 		))
 }
 
@@ -134,7 +133,7 @@
 	assertPath(t,
 		"$[123::7]",
 		buildPath(
-			newMatchSliceFn(123, math.MaxInt64, 7),
+			newMatchSliceFn(123, MaxInt, 7),
 		))
 }
 
@@ -150,7 +149,7 @@
 	assertPath(t,
 		"$[::7]",
 		buildPath(
-			newMatchSliceFn(0, math.MaxInt64, 7),
+			newMatchSliceFn(0, MaxInt, 7),
 		))
 }
 
diff --git a/queryparser.go b/queryparser.go
index be6954f..8c0de8d 100644
--- a/queryparser.go
+++ b/queryparser.go
@@ -9,9 +9,10 @@
 
 import (
 	"fmt"
-	"math"
 )
 
+const MaxInt = int(^uint(0) >> 1)
+
 type queryParser struct {
 	flow         chan token
 	tokensBuffer []token
@@ -203,7 +204,7 @@
 
 func (p *queryParser) parseSliceExpr() queryParserStateFn {
 	// init slice to grab all elements
-	start, end, step := 0, math.MaxInt64, 1
+	start, end, step := 0, MaxInt, 1
 
 	// parse optional start
 	tok := p.getToken()