Fix deadlock in simple_action_server.py

Deadlock was caused by race condition between internal_goal_callback() and accept_new_goal(), set_accepted(), set_aborted() and set_preempted() (issue #4 )

Fixed by:
a) Ensuring accept_new_goal acquires locks in same order as internal_goal_callback (action_server.lock first, self.lock second)
b) Ensuring all state changing functions acquire locks in the same order...
c) Checking if there's a new task available is now lock-free (to avoid acquiring self.lock before action_server.lock)

I believe this commit should not change the internal state transitions of simple_action_server, so everything that was working should keep working.

I tested that the code removes the deadlock using the callback style. Polling implementations were not tested.