Do not use initializer list as clang chokes on it
Add Z3ReadEncoder default constructor for clang
Call std::shared_ptr::bool() to check for nullptr

LLVM 3.2 does not support equality check against nullptr.