export symbol Parrot_io_get_vtable

Parrot_io_get_vtable is part of the public api so we have to make it available.
Merge pull request #1131 from FROGGS/export_io_get_vtable

export symbol Parrot_io_get_vtable
ChangeLog for Export Parrot_io_get_vtable #1131
Added lstat io op for nqp, fixed os.lstat method. #1129

nqp used stat on a symlink, which is wrong. provide the proper lstat pirop.
also fix the os.pmc lstat method which called stat()!.
Fixes GH #1129
[io] throw errors on illegal seek arguments, no assertions

Fixes #1130 and the relevant nqp test.
[pmc] fix splice overflows with negative count

Fixes GH #766.
Throw illegal argument with negative count arguments for now.

TODO: Implement support for negative count argument for splice.
Add more splice methods.
[pmc] harmonize and combine out of bounds exception strings

use less static string memory. no special context.
Use only "illegal argument" for unsupported negative arguments.
GH #1126

* index out of bounds,
* illegal argument (for illegal negative args),
* can't resize (for fixed*pmcs or size=0 arguments)
* StopIteration
More error message harmonization  #1126

Do not end the exception string with ".", "!" or "\n".
[pmc] allow negative array key indices

Fixes GH #1127
currently we throw "index out of bounds" when getting or setting $P0[-1]
the added code is only:
        if (key < 0)
            key += size;
so it is hard to argue for performance reasons.
ditto for resizable*array for consistency if not already implemented.
[test] change array tests to new harmonized out of bounds exceptions
ChangeLog for the 3 array changes