Refactor withdraw

这个分支主要是提现部分的一些改进

1. 用aasm这个gem定义了Withdraw的states和transitions https://github.com/peatio/peatio/blob/refactor_withdraw/app/models/withdraw.rb#L91-L147

2. 给withdraw增加了一个aasm_state字段，保留原来的state字段，同时overwrite Withdraw#state，尽量保持向后兼容.
    对于btc提现，有可能在bitcoind发送btc的时候出现crash，btc已发出，但withdraw的状态未更新。所以额外有一个almost_done的状态，在调用bitcoind之前就更新withdraw的状态，防止发送两次btc.

3. 针对可能的并发，锁定withdraw和account
  *  resque job在处理withdraw的时候，用户取消提现
  *  withdraw涉及account balance变化的时候，用户进行交易

4. 邮件通知
  *  用户成功登录后会收到一封邮件通知 （防止帐号盗用，参考btc-e）
  *  提现处于终止状态(final state)， 发送邮件通知用户