v4.1

Things that I changed (till 4:00AM):
1. Added link states. (Which node we can send packets to is not
monitored) gState.link[];
2. Added active motes. (If we should send packets to the mote)
gState.active[];
3. In processQuery_cmd, check if the mote is in the link, then set it as
active. *
4. Added global send and recv busy signals (gSnd_busy, gRcv_busy) and
check before every transmission.
5. Created init() function to populate vars.
6. Added gState.activeT - If ON or OFF, and gState.PActiveT - Prev
State.
7. Toggle timers depending upon state change. (ie stop timers on
entering OFF state, and check if Prev state was OFF then start timers)
8. QTimer.fired - check for busy and set busy until transmission.
9. PktTimer.fired - change in code, not in logic
10. (qCmd, qRsp, qPkt)Snd - added gSnd_busy FALSE
.
11. Rewrote Q primitives to use load, get and pop. (loadQ add in bottom,
'getQ' gets the top packet, 'popQ' removes top pkt)

TODO:
1. Use a small interval timer to start Q sending.
(processQuery_response)
2. In 'processPacket' check if link exists, and if mote is not active,
drop packet. If for us, del packet.
3. Added 'doPacket', which will process recd packets. It off-loads the
tasks in Receive.receive.