Certificate/PKey generation & PEM export

Notes:

* required a lot of restructuring and one of the questions if there is any particular reason (except of historical) for every module to declare it's own `ffi` submodule? I would like to combine them in one huge shared `ffi` which will be accessible from all modules without a lot of boilerplate. 

* there are a couple of FIXME's left which I'll address one-by-one, the primary reason for early PR is to get as flawless merge as possible considering how many project structure changes are in and potential other PRs.