비밀번호 유형 정의/표현 방식 개선

기존에는 각 발송기관별 `sender` 객체 정의에 `hint`와 `keylen`이라는 2개의 변수를 통해 비밀번호 입력란 안내 및 정규식 패턴을 만들어냈습니다. 그런데 일부 메일의 경우 주민등록번호 외에 자리수가 다른 사업자등록번호를 함께 사용하기도 하고, 그 유형이 너무 다양한 경우에는 입력란에 다 표기하기 어려운 경우도 있었습니다.

또 한편으로는 일부 메일에서 자체적으로 가지고 있는 비밀번호 안내 메시지를 활용하지 못하고 있었습니다. 이런저런 상황들을 고려해서 비밀번호 유형을 정의하고 표현하는 로직을 새로 만들어보았습니다.

1. 여러 유형이 필요한 경우에도 `hint`와 `keylen` 한곳에 구겨넣어야 했던 것을 `rule`이라는 배열 속성으로 확장하였습니다.

 예를 들어 기존에 이렇게 정의하였다면,
 ```javascript
 hint: '주민/사업자등록번호',
 keylen: '7,10'
 ```

 이제는 아래와 같이 나눠서 정의할 수 있습니다.
 ```javascript
 rule: [{
     hint: '주민등록번호 뒤',
     size: 7
 }, {
     hint: '사업자등록번호',
     size: 10
 }]
 ```

2. 이렇게 하다보니 입력란의 placeholder로 사용하는 메시지를 직접 축약해줄 필요가 없습니다. 대신 `hinter` 객체가 문자열을 적절히 잘라서 '주민/사업자등록번호'와 같이 자동으로 만들어줍니다.

3. 혹시 너무 길어 보이지 않을 수 있는 비밀번호 유형에 대한 정보를 비밀번호 입력란 좌측 버튼의 popover로 다시 정리해보여줍니다.

4. 또한 XecureExpress 메일의 `X-XEI_PWD_MSG`, JX-Mail의 `HintKey`와 같이 발송기관에서 직접 입력해놓은 비밀번호 입력 안내가 있으면 popover 상에 함께 보여줍니다.

5. 이 PR을 보내기 직전에 추가된 요건(#30)이 있습니다. 기존에는 비밀번호가 숫자인 것을 가정하여 정규식에 박혀 있었는데, 우리은행처럼 비밀번호를 문자로 생성하는 경우가 있습니다. 이런 경우에는 조금 지저분하기는 하지만, `size` 속성에 `\\w`와 같은 문자열 그룹을 붙여주면 그대로 정규식에 추가되도록 만들어봤습니다. 혹시 이런 경우가 많아지면 다시 한번 정리하도록 하죠~