Returning message id instead of message object

Since we don't lock the tables and the status for the next message
might change before we use it returning a Made_Queue_Model_Message is
not appropriate. Returning a message object implies that the object
itself can be used when it's actually only the message id that is
useable.
Added locking of message table

The lock prevents several brokers to deliver the same message.