Support a BPF program larger than BPF_MAXINSNS
Support a BPF program larger than BPF_MAXINSNS

A privileged user can load bpf program whose size is at most
BPF_COMPLEXITY_LIMIT_INSNS (which is larger than BPF_MAXINSNS) in Linux 5.3
(https://github.com/torvalds/linux/commit/c04c0d2b968ac45d6ef020316808ef6c82325a82).
Currently, however, `bcc_prog_load_xattr()` return error if  a bpf
program size is larger than BPF_MAXINSNS before loading the program. To
cope with this, change the function so that first trying to load a bpf
program and print an error message if bpf_program_load_xattr() fails
with -E2BIG.  This strategy is the same as libbpf's `load_program`
(https://github.com/libbpf/libbpf/blob/9ef191ea7dca6815e75dab341f2f7a346d979c66/src/libbpf.c#L3792)
The Error message should use BPF_COMPLEXITY_LIMIT_INSNS when
appropriate, but it is not defined in uapi headers yet.

Signed-off-by: Masanori Misono <789bba239773890001881c6e46df0001dd71c086@gmail.com>

iovisor/bcc,tuxology/bcc,brendangregg/bcc,iovisor/bcc,tuxology/bcc,iovisor/bcc,brendangregg/bcc,brendangregg/bcc,iovisor/bcc,tuxology/bcc,tuxology/bcc,brendangregg/bcc,brendangregg/bcc,iovisor/bcc,tuxology/bcc