[bitshares/bitshares-core] BSIP: Custom active authorities (#1285)

Strengthening user security is one of the main factors to elevate BitShares. In light of recent hacking and phishing attempts this becomes even more important. The need for a more sophisticated account security preceeded the idea for a finer-grained control of account permissions. We propose to add an additional authority to the account, called Custom Active (Permission). The permission contains a list of operationid-to-authority mappings that each grant access to the respective operation as if it were the active permission of the account. Additionally, the arguments of said operation can be restricted.

**User Story**
As a `user` I want `a more sophisticated control` and `management` capabilities for my permissions so that `the impact of a compromised key is reduced` and `on-chain tasks can be delegated`.

This covers issues reported here as well
— https://github.com/bitshares/bitshares-core/issues/590
— https://github.com/bitshares/bitshares-core/issues/693
— https://github.com/bitshares/bitshares-core/issues/1044
— https://github.com/bitshares/bitshares-core/issues/1061

**Impacts**
— [x] API (the application programming interface)
— [ ] Build (the build process or something prior to compiled code)
— [x] CLI (the command line wallet)
— [ ] Deployment (the deployment process after building such as Docker, Travis, etc.)
— [x] DEX (the Decentralized EXchange, market engine, etc.)
— [ ] P2P (the peer-to-peer network for transaction/block propagation)
— [x] Performance (system or user efficiency, etc.)
— [x] Protocol (the blockchain logic, consensus, validation, etc.)
— [x] Security (the security of system or user data, etc.)
— [x] UX (the User Experience)
— [ ] Other (please add below)

## The BSIP
The BSIP drafting is completed and it is available here
https://github.com/bitshares/bsips/blob/master/bsip-0040.md

## CORE TEAM TASK LIST
— [x] BSIP
— [x] Draft: @sschiessl-bcp @xeroc @clockworkgr
— [x] Review, refine, publish: @sschiessl-bcp @bitshares/core-dev
— [x] Submit to BSIP repository
— [ ] Submit Milestone 1 for Community approval
— [ ] Submit Milestone 2 for Community approval
— [ ] Submit Milestone 3 for Community approval
— [ ] Submit Milestone 4 for Community approval
— [ ] Evaluate / Prioritize Feature Request
— [ ] Refine User Stories / Requirements
— [ ] Define Test Cases
— [ ] Design / Develop Solution
— [ ] Perform QA/Testing
— [ ] Update Documentation