Change the way Index.define creates arrays to prevent precision issues
This PR closes #1506 (closed) by refactoring the way that Index.define()
creates arrays to prevent precision issues. A regression test has been introduced which demonstrates the precision issues describe in #1506 (closed).