WIP/ENH: apply_projection method as for Evoked

This PR moves the projection-activation to a private function and adds a new method
that allows to actiate the projectins later.

- This should make it easier to apply the projections late in the processing stream /
compare rejection effects etc.
COSMITS: add docstring, simplify expressions
COSMITS II
ENH: adding copy method
FIX: pass True
ENHL: implement oneway handling.
FIX/ENH: fixinf handling + adding proj option for read_evoked
ENH: ... actually adding the proj argument
ENH: set projn flag on creating aves
FIX: reference / copy bug
ENH: addressing points from discussion + COSMITS
ENH: adding add_proj
COSMITS
ENH: misc fixes + impriving the checking sequence + more readable
Add mixing
ENH: Fully implemented Mixin instead of class methods.

The fine tuning is missing however, namely.
- handle proj attibutes correctly on reading and writing
- add exceptions for the most obvious corner cases
- integrate the new methods with existing Epochs reading / writing.
ENH: fix head + remove comments + return self
ENH : more tests with ProjMixin with Evoked and Epochs (still buggy)
FIX: fix projection check. addresses recent discussion
FIX: revert unintended change on example.