minor optimizations (FFI backend)

	modified:   lib/POEx/ZMQ/FFI/Error.pm
	modified:   lib/POEx/ZMQ/FFI/Role/ErrorChecking.pm
minor optimizations

	modified:   lib/POEx/ZMQ.pm
	modified:   lib/POEx/ZMQ/FFI/Role/ErrorChecking.pm
	modified:   lib/POEx/ZMQ/FFI/Socket.pm
	modified:   t/ffi/socket.t
micro-optimize FFI::Socket->send(_multipart)

	modified:   lib/POEx/ZMQ/FFI/Socket.pm
more FFI::Socket micro-optimizations

	modified:   lib/POEx/ZMQ/FFI/Socket.pm
more micro-optimization

	modified:   lib/POEx/ZMQ/FFI/Socket.pm
minor optimizations

	modified:   lib/POEx/ZMQ/Socket.pm
v0.003001

  - Add SSH tunnel example script from deprecated POEx-ZMQ3 dist

  - Add ZMQEndpoint type to POEx::ZMQ::Types

  - FFI backend optimizations
follow ZMQ::FFI's example and use a larger max msg size

ZMQ::FFI does the smarter/future-proofed thing and generates 'max size across
versions plus wiggle room' -- but this ought do us for a quick fix

	modified:   lib/POEx/ZMQ/FFI/Socket.pm
track ZMQ::FFI; apply flags to each part of a multipart send

	modified:   lib/POEx/ZMQ/FFI/Socket.pm
cache POEx::ZMQ::FFI::Callable objects for a given soname

	new file:   lib/POEx/ZMQ/FFI/Cached.pm
	modified:   lib/POEx/ZMQ/FFI/Context.pm
	modified:   lib/POEx/ZMQ/FFI/Socket.pm
minor FFI::Cached optimizations

	modified:   lib/POEx/ZMQ/FFI/Cached.pm
basic FFI::Cached test

	modified:   t/ffi/socket.t
cache err_handler FFI::Callable objs

	modified:   lib/POEx/ZMQ/FFI/Context.pm
	modified:   lib/POEx/ZMQ/FFI/Role/ErrorChecking.pm
better FFI::Cached->clear exceptions

	modified:   lib/POEx/ZMQ/FFI/Cached.pm
simple FFI::Cached test

	new file:   t/ffi/cached.t
delay write retry for 0.1s on EAGAIN/EINTR/EFSM

	modified:   lib/POEx/ZMQ/Socket.pm
fix return-if-retrying behavior in _pxz_nb_write

	modified:   lib/POEx/ZMQ/Socket.pm
clean up _pxz_nb_write

	modified:   lib/POEx/ZMQ/Socket.pm
clean up _pxz_nb_write

	modified:   lib/POEx/ZMQ/Socket.pm
minor _message_not_sendable optimizations

	modified:   lib/POEx/ZMQ/Socket.pm