LibNFC.pde: Work on interface.

Switch to using the poll method instead of list_passive as that was
hanging for 5 seconds if there were no cards which made removal
detection very poor.

Revamp the reader connect/disconnect logic so that it's handled
dynamically - readers can now be added/disconnected during runtime
and the library handles that, dynamically adding/removing readers.

Finally, wrap that all up in a threading model that calls a given
callback on card add/remove.