ENH add_dig_points, SetChannelMixin, reorganization

This is WIP.

Adds function apply_dig_points to apply hpi, cardinal, and dig points to the Info.

Remove unnecessary import functions for np.loadtxt.

Needs test. Not ready for review
Use this, time the execution and compare it to your function. Where your function takes longer, what added functionality does it perform that justifies the performance decrease?
```
import numpy as np
from mne.io.constants import FIFF


def my_dig(nasion, lpa, rpa, elp, hsp):
    dig = [{'r': nasion, 'ident': FIFF.FIFFV_POINT_NASION,
            'kind': FIFF.FIFFV_POINT_CARDINAL,
            'coord_frame':  FIFF.FIFFV_COORD_HEAD},
           {'r': lpa, 'ident': FIFF.FIFFV_POINT_LPA,
            'kind': FIFF.FIFFV_POINT_CARDINAL,
            'coord_frame': FIFF.FIFFV_COORD_HEAD},
           {'r': rpa, 'ident': FIFF.FIFFV_POINT_RPA,
            'kind': FIFF.FIFFV_POINT_CARDINAL,
            'coord_frame': FIFF.FIFFV_COORD_HEAD}]

    for idx, point in enumerate(elp):
        dig.append({'r': point, 'ident': idx, 'kind': FIFF.FIFFV_POINT_HPI,
                    'coord_frame': FIFF.FIFFV_COORD_HEAD})

    for idx, point in enumerate(hsp):
        dig.append({'r': point, 'ident': idx,
                    'kind': FIFF.FIFFV_POINT_EXTRA,
                    'coord_frame': FIFF.FIFFV_COORD_HEAD})

    return dig


nasion = np.random.normal(0, 1, (3,))
lpa = np.random.normal(0, 1, (3,))
rpa = np.random.normal(0, 1, (3,))
elp = np.random.normal(0, 1, (3, 5))
hsp = np.random.normal(0, 1, (3, 1000))
```