Added Controller support, fixed some concurrency issues

Requires JInput API