lxc_test: change package name to lxc

Problem: they are different ways of declaring a package name for
testing. Usually the package name of tests are the same as the base
package name (in our case "lxc"). However some libraries (including Go's
std libraries) is using the abbrv: "foo_test" for the package name of
tests. This has the caveat that it's not possible to access to the
package's private identifiers. For more information see:
http://stackoverflow.com/questions/19998250/proper-package-naming-for-testing-in-go-lang

Solution: this fixes #3 by changing the package name from "lxc_test" to
"lxc".
Merge pull request #6 from fatih/master.testpackage

lxc_test: change package name to lxc
fix name clash by adding a unique prefix to our C code

Looks like (at least in Fedora 20) linker does some interesting work and causes cgo to crash.

Improves #5
[cosmetic] add missing '+build linux' lines and update headers
some distros (like fedora) does not ship aufs/overlayfs so check their existence before trying to test them
[minor/test] rename some internal variables
do not use external modules and use same set of arguments used by lxc-test-concurrent
[cosmetic] replace saucy default with trusty
introduce SoftMemoryLimit/SetSoftMemoryLimit
check return value of calloc call and remove duplicated code
do not ignore errors in tests
remove not needed t.Logf call
add a new parameter to create.go and introduce doc.go with Wikipedia description of LXC
http://golang.org/doc/go1.3#garbage_collector