unittest: recycle packet before exit

To avoid an issue with flow validation, we need to recycle the packet
before cleaning the flow.
unittests: some functions needs a flow lock.

In debug validation mode, it is required to call application layer
parsing and other functions with a lock on flow. This patch updates
the code to do so.
unittests: fix stream-tcp.c

Lock and recycle fixes for stream-tcp.c
IsRuleReloadSet() shouldn't return an uninitialized value
Enable using Tile cycle counter.

The Tile processors all have a cycle counter with a simple interface. Use
that for UtilCpuGetTicks.
Rearrange ac state.

Notice a minor speed bump of around 2% on runs.  More updates to follow.
Fixes segv inside rule swap under low mem conditions.

We now gracefully exit rule swap on any allocation or other failures.
Added the new files containing the repeated functions
- Renamed the functions to something more generic
- Added the source and include files to the Makefile
Now using the common functions
- Removed some non printable ANSI characters
- Removed unecessary include
Now using the common functions
fix for #920.

Cull the space before the address specified in address var variables.
fix for #932.

ipv6 tunnel decoder wrongly treats the tunneled ipv6 packets as an ipv4
packet.
Tile SIMD implementation of SCMemcmp and SCMemcmpLowercase

Based on the SSE3 implementation, it checks 8 bytes at a time.
Use Tilera SIMD for Signature matching ala SSE3

Makes use of 8-wide byte compare instructions in signature matching.

For allocating aligned memory, _mm_malloc() is SSE only, so added
check for __tile__ to use memalign() instead.

Shows a 13% speed up.
Create SCMUTEX_INITIALIZER to abstract out PTHREAD_MUTEX_INITIALIZER

This allows replacing pthread mutexes with other types of mutex.
Merge multiple copies of CreateTimeString() to one copy.

There were 8 identical copies of CreateTimeString() in 8 files.
Most used SCLocalTime, to replace localtime_r(), but some did not.
Created one copy in util-time.c.
Cache time conversions for localtime() and CreateTimeString()

When converting a time in seconds (64-bit seconds since 1970) to
Month/Day/Year hours minutes, Suricata calls localtime_r(), which
always aquires a lock and then does complex comutation based on the
current time zone. The time zone can be specified in the TZ
environment variable, which is only parsed the first time it is used,
or from a file. The default file is /etc/localtime. The file is
checked each time to see if it might have changed and is reparsed if
it has changed.

The GLIBC library has a lock inside localtime_r(), which limits
parallelism, which is a problem when the rate of generating alerts is
high, since Suricata generates a new ascii time string for each alert
into fast.log.

This change caches the value returned by localtime_t() and then sets
the seconds within the minute based on the cached start-of-minute
time. All of the values return, expect for the seconds, is constant
within the same minute. Switching to a new seconds could change all
the other values, year, month, day, hour. The cache stores the current
and previous minute values.

The same trick is used in CreateTimeString() for generated time
string. The string, up to the minutes, is cached and then copied into
the result string, followed by printing the new seconds into the
result string.

The seconds within a minute are calculated as the difference in
seconds from the start of the current minute.
On Open BSD systems don't cache time.

Open BSD doesn't support __thread, which is used for time caching, so
don't do time chaching for BSD systems.
Clean up SCLocalTime() usage

Remove cast of return type from SCLocalTime() as it is not needed.
Replace last use of localtime_r() with SCLocalTime().
Formatting change for function call.

Put open brace { for function on a new line to match coding standard.

Changed:

int foo(int x) {
}

to:

int foo(int x)
{
}