[neo-project/neo] Allowing ABI to be stored in the blockchain (#346)

I think the ABI should be separate from the description and there should be a way to modify it.
Maybe we should modify `Neo.Contract.Create` to allow it to submit ABI while creating the contract.
And we can add `Neo.Contract.SetABI` to allow developers modify the ABI of the contract.