encap: Remove 'scalar' from Encapsulation.
base: Get rid of 'time' as a template and make a configuration variable.
config: Add PFASST_TIME_PRECISION define to override `pfasst::time`.

Note that if PFASST_TIME_PRECISION is not defined, `pfasst::time`
defaults to `double`.
base: Use template variables through to set the time precision.
int/uint -> size_t

Mainly made loop indices of type size_t ensuring they don't become
negative and removing signed-unsigned comparisons as std::vector.size()
always returns a size_t.

Also added assertions at a few points to ensure consistency.

Had to use an explicit cast of size_t to int at a few points.
cmake: add -Wextra and -Wpedantic

as default compiler arguments
a few std::vector tweaks ([0] -> .front(); [size-1] -> .back())
finished templatization
C++ constructor syntax for explicit casts

not C-style syntax
code style: add astyle config
code style: applied Astyle to sources
code style: capitalizing constants
code style: dvector -> DVectorT
code style: template parameter 'scalar' -> 'ScalarT'
code style: template parameter 'time' -> 'timeT'
code style: class name 'polynomial' -> 'Polynomial'
code style: template parameter 'coeffT' -> 'CoeffT'
code style: template parameter 'controllerT' -> 'ControllerT'
code style: template parameter capitalization

'buildT' -> 'BuildT'
'initialT' -> 'InitialT'
code style: typdef 'auto_build_tuple' -> 'AutoBuildTupleT'